X-Git-Url: https://jfr.im/git/irc/unrealircd/unrealircd-webpanel.git/blobdiff_plain/e65f1f65cec6e636c88f9cd913471ec5956f3268..39330628e8c0719660d6adaf6171b855f69513e7:/js/unrealircd-admin.js diff --git a/js/unrealircd-admin.js b/js/unrealircd-admin.js index aa70e81..688fc3b 100644 --- a/js/unrealircd-admin.js +++ b/js/unrealircd-admin.js @@ -63,6 +63,8 @@ function toggle_checkbox(source) { } } +/* Popup notifications */ + function generate_notif(title, body) { /* generate a random number between 1000 and 90000 to use as an id */ @@ -85,8 +87,9 @@ function generate_notif(title, body) theTitle.classList.add('mr-auto'); theTitle.textContent = title; - const notiftime = document.createElement('small'); - notiftime.textContent = "Just now"; // always just now I think right :D + const notiftime = document.createElement('div'); + notiftime.classList.add('badge', 'rounded-pill', 'badge-primary', 'ml-1'); + notiftime.textContent = 'Just now'; // always just now I think right :D const closebutton = document.createElement('button'); closebutton.type = 'button'; @@ -115,9 +118,6 @@ function generate_notif(title, body) $('#' + toast.id).toast('show'); } -$("#myModal").on('shown.bs.modal', function(){ - $("#CloseButton").focus(); -}); function StreamNotifs(e) { var data; @@ -130,10 +130,48 @@ function StreamNotifs(e) msg = data.msg; generate_notif(title, msg); } + function StartStreamNotifs(url) { if (!!window.EventSource) { var source = new EventSource(url); source.addEventListener('message', StreamNotifs, false); } -} \ No newline at end of file +} + +/* Log streamer */ +function NewLogEntry(e) +{ + var data; + try { + data = JSON.parse(e.data); + } catch(e) { + return; + } + + if (data.sync_option != "sync_now") + { + var sync = (data.sync_option == "no_sync") ? false : true; + delete data.sync_option; + + data_list_table.row.add({ + 'Time':data.timestamp, + 'Level':data.level, + 'Subsystem':data.subsystem, + 'Event':data.event_id, + 'Message':data.msg, + 'Raw':JSON.stringify(data)}); + + if (!sync) + return; + } + data_list_table.draw(true); + data_list_table.rows().invalidate(); + data_list_table.searchPanes.rebuildPane(); +} + +function StartLogStream(url) +{ + var source = new EventSource(url); + source.addEventListener('message', NewLogEntry, false); +}