X-Git-Url: https://jfr.im/git/irc/unrealircd/unrealircd-webpanel.git/blobdiff_plain/9680dd584c26031ebe3c4e70b1e9440e9e79755b..452b8eada34a0857aee8b5ea2a1dcb0a550626d3:/js/unrealircd-admin.js diff --git a/js/unrealircd-admin.js b/js/unrealircd-admin.js index 4aa5fa1..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 */ @@ -128,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); +}