Skip to content
Snippets Groups Projects
Commit f05c5c61 authored by echicken's avatar echicken :chicken:
Browse files

Some clean-up and simplification.

If your browser is from another geological epoch, I have no sympathy for you.
parent 26761925
No related branches found
No related tags found
1 merge request!463MRC mods by Codefenix (2024-10-20)
...@@ -11,7 +11,9 @@ async function v4_fetch(url, method, body) { ...@@ -11,7 +11,9 @@ async function v4_fetch(url, method, body) {
} }
} }
try { try {
return await fetch(url, init).then(res => res.json()); const response = await fetch(url, init);
const data = await response.json();
return data;
} catch (err) { } catch (err) {
console.log('Error on fetch', url, init); console.log('Error on fetch', url, init);
} }
...@@ -81,52 +83,30 @@ function sendTelegram(alias) { ...@@ -81,52 +83,30 @@ function sendTelegram(alias) {
} }
function registerEventListener(scope, callback, params) { function registerEventListener(scope, callback, params) {
params = Object.keys(params || {}).reduce(function (a, c) { params = Object.keys(params || {}).reduce((a, c) => `${a}&${c}=${params[c]}`, '');
a += '&' + c + '=' + params[c];
return a;
}, '');
_sbbs_events[scope] = { _sbbs_events[scope] = {
qs: 'subscribe=' + scope + params, qs: `subscribe=${scope}${params}`,
callback: callback callback: callback,
}; };
} }
document.addEventListener("DOMContentLoaded", function () { document.addEventListener('DOMContentLoaded', () => {
// originally based on dark-mode-switch by Christian Oliff // originally based on dark-mode-switch by Christian Oliff
var darkSwitch = document.getElementById("darkSwitch"); if ($('#darkSwitch').length) {
if (darkSwitch) { $('#darkSwitch').checked = localStorage.getItem('darkSwitch') || (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches);
initTheme(); $('#darkSwitch').change(resetTheme);
darkSwitch.addEventListener("change", function (event) {
resetTheme(); resetTheme();
});
function initTheme() {
var darkThemeSelected;
if (localStorage.getItem("darkSwitch") !== null) {
darkThemeSelected = localStorage.getItem("darkSwitch") === "dark";
} else {
darkThemeSelected = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;
}
darkSwitch.checked = darkThemeSelected;
if (darkThemeSelected) {
jQuery("body").addClass("dark")
} else {
jQuery("body").removeClass("dark");
}
}
function resetTheme() { function resetTheme() {
if (darkSwitch.checked) { if (this.checked) {
jQuery("body").addClass("dark"); $('body').addClass('dark');
localStorage.setItem("darkSwitch", "dark"); localStorage.setItem('darkSwitch', 'dark');
} else { } else {
jQuery("body").removeClass("dark"); $('body').removeClass('dark');
localStorage.setItem("darkSwitch", "light"); localStorage.removeItem('darkSwitch');
} }
} }
} }
$('html').removeClass('hidden');
jQuery('html').removeClass('hidden');
}); });
window.onload = function () { window.onload = function () {
...@@ -135,31 +115,27 @@ window.onload = function () { ...@@ -135,31 +115,27 @@ window.onload = function () {
$('#button-login').click(login); $('#button-login').click(login);
$('#form-login').submit(login); $('#form-login').submit(login);
$('#popUpModal').on('hidden.bs.modal', function (e) { $('#popUpModal').on('hidden.bs.modal', () => {
$('#popUpModalActionButton').off('click'); $('#popUpModalActionButton').off('click');
$('#popUpModalTitle').empty(); $('#popUpModalTitle').empty();
$('#popUpModalBody').empty(); $('#popUpModalBody').empty();
}); });
$("#popUpModalCloseButton").click(function () { $("#popUpModalCloseButton").click(() => $('#popUpModal').modal('hide'));
$('#popUpModal').modal('hide');
});
setTimeout(scrollUp, 25); setTimeout(scrollUp, 25);
window.onhashchange = scrollUp; window.onhashchange = scrollUp;
if ($('#button-logout').length > 0) { if ($('#button-logout').length > 0) {
registerEventListener('mail', function (e) { registerEventListener('mail', e => {
const data = JSON.parse(e.data); const data = JSON.parse(e.data);
if (typeof data.count != 'number') return; if (typeof data.count != 'number') return;
$('#badge-unread-mail').text(data.count < 1 ? '' : data.count); $('#badge-unread-mail').text(data.count < 1 ? '' : data.count);
$('#badge-unread-mail-inner').text(data.count < 1 ? '' : data.count); $('#badge-unread-mail-inner').text(data.count < 1 ? '' : data.count);
}); });
registerEventListener('telegram', function (e) { registerEventListener('telegram', e => {
const tg = JSON.parse(e.data).replace(/\1./g, '').replace( const tg = JSON.parse(e.data).replace(/\1./g, '').replace(/\r?\n/g, '<br>');
/\r?\n/g, '<br>'
);
$('#popUpModalTitle').html('New telegram(s) received'); $('#popUpModalTitle').html('New telegram(s) received');
$('#popUpModalBody').append(tg); $('#popUpModalBody').append(tg);
$('#popUpModalActionButton').hide(); $('#popUpModalActionButton').hide();
...@@ -168,13 +144,8 @@ window.onload = function () { ...@@ -168,13 +144,8 @@ window.onload = function () {
} }
const qs = Object.keys(_sbbs_events).reduce(function (a, c, i) { const qs = Object.entries(_sbbs_events).reduce((a, c, i) => `${a}${(i === 0 ? '?' : '&')}${c[1].qs}`, '');
return a + (i == 0 ? '?' : '&') + _sbbs_events[c].qs;
}, '');
const es = new EventSource('./api/events.ssjs' + qs); const es = new EventSource('./api/events.ssjs' + qs);
Object.keys(_sbbs_events).forEach(function (e) { Object.keys(_sbbs_events).forEach(e => es.addEventListener(e, _sbbs_events[e].callback));
es.addEventListener(e, _sbbs_events[e].callback);
});
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment