}
}
+/* Popup notifications */
+
function generate_notif(title, body)
{
/* generate a random number between 1000 and 90000 to use as an id */
const id = Math.floor(Math.random() * (max - min + 1)) + min;
const toast = document.createElement('div');
- toast.classList.add('position-fixed', 'bottom-0', 'right-0', 'p-4');
- toast.style.right = 0;
- toast.style.zIndex = 5;
- toast.style.bottom = "50px";
-
- const inner = document.createElement('div');
- inner.classList.add('toast', 'hide');
- inner.id = 'toast' + id;
- inner.role = 'alert';
- inner.ariaLive = 'assertive';
- inner.ariaAtomic = 'true';
- inner.setAttribute('data-delay', '5000');
+ toast.classList.add('toast', 'hide');
+ toast.id = 'toast' + id;
+ toast.role = 'alert';
+ toast.ariaLive = 'assertive';
+ toast.ariaAtomic = 'true';
+ toast.setAttribute('data-delay', '10000');
const header = document.createElement('div');
header.classList.add('toast-header');
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';
header.appendChild(theTitle);
header.appendChild(notiftime);
header.appendChild(closebutton);
- inner.appendChild(header);
- inner.appendChild(toastbody);
- toast.appendChild(inner);
+ toast.appendChild(header);
+ toast.appendChild(toastbody);
+ document.getElementById('toaster').append(toast);
- document.body.appendChild(toast);
- $('#' + inner.id).toast('show');
+ $('#' + toast.id).toast('show');
}
-$("#myModal").on('shown.bs.modal', function(){
- $("#CloseButton").focus();
-});
+
function StreamNotifs(e)
{
var data;
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);
+}