var suricatalines = Array(); var suricatatimer; var suricataisBusy = false; var suricataisPaused = false; function suricata_alerts_fetch_new_rules() { //get new alerts from suricata_alerts.widget.php url = "/widgets/widgets/suricata_alerts.widget.php?getNewAlerts=1" + new Date().getTime(); jQuery.ajax(url, { type: 'GET', success: function(callback_data) { var data_split; var new_data_to_add = Array(); var data = callback_data; data_split = data.split("\n"); // Loop through rows and generate replacement HTML for(var x=0; x' + row_split[1] + ''; line += '' + row_split[2] + '
' + row_split[3] + ''; line += '' + 'Priority: ' + row_split[4] + '
' + row_split[5] + ''; new_data_to_add[new_data_to_add.length] = line; } suricata_alerts_update_div_rows(new_data_to_add); suricataisBusy = false; } }); } function suricata_alerts_update_div_rows(data) { if(suricataisPaused) return; var isIE = navigator.appName.indexOf('Microsoft') != -1; var isSafari = navigator.userAgent.indexOf('Safari') != -1; var isOpera = navigator.userAgent.indexOf('Opera') != -1; var rows = jQuery('#suricata-alert-entries>tr'); // Number of rows to move by var move = rows.length + data.length - nentries; if (move < 0) move = 0; for (var i = move; i < rows.length; i++) { jQuery(rows[i - move]).html(jQuery(rows[i]).html()); } var tbody = jQuery('#suricata-alert-entries'); for (var i = 0; i < data.length; i++) { var rowIndex = rows.length - move + i; if (rowIndex < rows.length) { jQuery(rows[rowIndex]).html(data[i]); } else { jQuery(tbody).append('' + data[i] + ''); } } // Add the even/odd class to each of the rows now // they have all been added. rows = jQuery('#suricata-alert-entries>tr'); for (var i = 0; i < rows.length; i++) { rows[i].className = i % 2 == 0 ? 'listMRodd' : 'listMReven'; } } function fetch_new_surialerts() { if(suricataisPaused) return; if(suricataisBusy) return; //get new alerts from suricata_alerts.widget.php suricataisBusy = true; suricata_alerts_fetch_new_rules(); } function suricata_alerts_toggle_pause() { if(suricataisPaused) { suricataisPaused = false; fetch_new_surialerts(); } else { suricataisPaused = true; } } /* start local AJAX engine */ suricatatimer = setInterval('fetch_new_surialerts()', suricataupdateDelay);