mirror of https://github.com/CIRCL/AIL-framework
				
				
				
			
		
			
				
	
	
		
			273 lines
		
	
	
		
			8.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
			
		
		
	
	
			273 lines
		
	
	
		
			8.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
| function initfunc( csvay, scroot) {
 | |
|   window.csv = csvay;
 | |
|   window.scroot = scroot;
 | |
| };
 | |
| 
 | |
| function update_values() {
 | |
|   $SCRIPT_ROOT = window.scroot ;
 | |
|     $.getJSON($SCRIPT_ROOT+"/_stuff",
 | |
|         function(data) {
 | |
|             window.glob_tabvar = data;
 | |
|         });
 | |
|     };
 | |
| 
 | |
| var source = new EventSource('/_logs');
 | |
| 
 | |
| source.onmessage = function(event) {
 | |
|     var feed = jQuery.parseJSON( event.data );
 | |
|     create_log_table(feed);
 | |
| };
 | |
| 
 | |
| function pad_2(number)
 | |
| {
 | |
|      return (number < 10 ? '0' : '') + number;
 | |
| }
 | |
| 
 | |
| function create_log_table(obj_json) {
 | |
|     tableBody = document.getElementById("tab_body")
 | |
|     var tr = document.createElement('TR')
 | |
|     var time = document.createElement('TD')
 | |
|     var chan = document.createElement('TD')
 | |
|     var level = document.createElement('TD')
 | |
|     var scrpt = document.createElement('TD')
 | |
|     var src = document.createElement('TD')
 | |
|     var pdate = document.createElement('TD')
 | |
|     var nam = document.createElement('TD')
 | |
|     var msage = document.createElement('TD')
 | |
| 
 | |
|     var chansplit = obj_json.channel.split('.');
 | |
|     var parsedmess = obj_json.data.split(';');
 | |
| 
 | |
|     if( chansplit[1] == "INFO" ){
 | |
|         tr.className = "info";
 | |
|     }
 | |
|     else if ( chansplit[1] == "WARNING" ){
 | |
|         tr.className = "warning";
 | |
|     }
 | |
|     else if ( chansplit[1] == "CRITICAL"){
 | |
|         tr.className = "danger"
 | |
|     }
 | |
| 
 | |
|     source_link = document.createElement("A");
 | |
|     if (parsedmess[1] == "slexy.org"){
 | |
|         soruce_url = "http://"+parsedmess[1]+"/view/"+parsedmess[3].split(".")[0];
 | |
|     }
 | |
|     else{
 | |
|         source_url = "http://"+parsedmess[1]+"/"+parsedmess[3].split(".")[0];
 | |
|     }
 | |
|     source_link.setAttribute("HREF",source_url);
 | |
|     source_link.setAttribute("TARGET", "_blank")
 | |
|     source_link.appendChild(document.createTextNode(parsedmess[1]));
 | |
| 
 | |
|     src.appendChild(source_link);
 | |
| 
 | |
|     var now = new Date();
 | |
|     var timepaste = pad_2(now.getHours()) + ":" + pad_2(now.getMinutes()) + ":" + pad_2(now.getSeconds());
 | |
| 
 | |
|     time.appendChild(document.createTextNode(timepaste));
 | |
|     chan.appendChild(document.createTextNode(chansplit[0]));
 | |
|     level.appendChild(document.createTextNode(chansplit[1]));
 | |
| 
 | |
|     scrpt.appendChild(document.createTextNode(parsedmess[0]));
 | |
|     pdate.appendChild(document.createTextNode(parsedmess[2]));
 | |
|     nam.appendChild(document.createTextNode(parsedmess[3]));
 | |
| 
 | |
|     var iconspan = document.createElement('SPAN');
 | |
|     if (parsedmess[4].split(" ")[0] == "Detected"){
 | |
|         iconspan.className = "glyphicon glyphicon-eye-open";
 | |
|     }
 | |
|     else if (parsedmess[4].split(" ")[0] == "Checked"){
 | |
|         iconspan.className = "glyphicon glyphicon-thumbs-up";
 | |
|     }
 | |
|     iconspan.innerHTML = " ";
 | |
|     msage.appendChild(iconspan);
 | |
|     var message = parsedmess[4].split(" ");
 | |
|     message.shift();
 | |
| 
 | |
|     msage.appendChild(document.createTextNode(message.join(" ")));
 | |
| 
 | |
|     tr.appendChild(time)
 | |
|     tr.appendChild(chan);
 | |
|     tr.appendChild(level);
 | |
|     tr.appendChild(scrpt);
 | |
|     tr.appendChild(src);
 | |
|     tr.appendChild(pdate);
 | |
|     tr.appendChild(nam);
 | |
|     tr.appendChild(msage);
 | |
| 
 | |
|     if (tr.className == document.getElementById("checkbox_log_info").value && document.getElementById("checkbox_log_info").checked  == true) {
 | |
|            tableBody.appendChild(tr);
 | |
|        }
 | |
|     if (tr.className == document.getElementById("checkbox_log_warning").value && document.getElementById("checkbox_log_warning").checked == true) {
 | |
|         tableBody.appendChild(tr);
 | |
|     }
 | |
|     if (tr.className == document.getElementById("checkbox_log_critical").value && document.getElementById("checkbox_log_critical").checked == true) {
 | |
|         tableBody.appendChild(tr);
 | |
|     };
 | |
| 
 | |
|     var sel = document.getElementById("log_select")
 | |
|     if (tableBody.rows.length > sel.options[sel.options.selectedIndex].value){
 | |
|         while (tableBody.rows.length != sel.options[sel.options.selectedIndex].value){
 | |
|             tableBody.deleteRow(0);
 | |
|         }
 | |
|     }
 | |
| }
 | |
| 
 | |
| function create_queue_table() {
 | |
|     document.getElementById("queueing").innerHTML = "";
 | |
|     var Tablediv = document.getElementById("queueing")
 | |
|     var table = document.createElement('TABLE')
 | |
|     table.className = "table table-bordered table-hover table-striped";
 | |
|     var tableHead = document.createElement('THEAD')
 | |
|     var tableBody = document.createElement('TBODY')
 | |
| 
 | |
|     table.appendChild(tableHead);
 | |
|     table.appendChild(tableBody);
 | |
|     var heading = new Array();
 | |
|     heading[0] = "Queue Name"
 | |
|     heading[1] = "Amount"
 | |
|     var tr = document.createElement('TR');
 | |
|     tableHead.appendChild(tr);
 | |
| 
 | |
|     for (i = 0; i < heading.length; i++) {
 | |
|         var th = document.createElement('TH')
 | |
|         th.width = '100';
 | |
|         th.appendChild(document.createTextNode(heading[i]));
 | |
|         tr.appendChild(th);
 | |
|     }
 | |
| 
 | |
|     for(i = 0; i < (glob_tabvar.row1).length;i++){
 | |
|         var tr = document.createElement('TR')
 | |
|         for(j = 0; j < (glob_tabvar.row1[i]).length; j++){
 | |
|             var td = document.createElement('TD')
 | |
|             td.appendChild(document.createTextNode(glob_tabvar.row1[i][j]));
 | |
|             tr.appendChild(td)
 | |
|         }
 | |
|         tableBody.appendChild(tr);
 | |
|     }
 | |
|     Tablediv.appendChild(table);
 | |
| }
 | |
| 
 | |
| $(document).ready(function () {
 | |
|     var data = [];
 | |
|     var data2 = [];
 | |
|     var tmp_tab = [];
 | |
|     var tmp_tab2 = [];
 | |
|     var curves_labels = [];
 | |
|     var curves_labels2 = [];
 | |
|     var x = new Date();
 | |
| 
 | |
|     for (i = 0; i < glob_tabvar.row1.length; i++){
 | |
|         if (glob_tabvar.row1[i][0] == 'Categ' || glob_tabvar.row1[i][0] == 'Curve'){
 | |
|             tmp_tab2.push(0);
 | |
|             curves_labels2.push(glob_tabvar.row1[i][0]);
 | |
|         }
 | |
|         else {
 | |
|             tmp_tab.push(0);
 | |
|             curves_labels.push(glob_tabvar.row1[i][0]);
 | |
|         }
 | |
|     }
 | |
|     tmp_tab.unshift(x);
 | |
|     tmp_tab2.unshift(x);
 | |
|     curves_labels.unshift("date");
 | |
|     curves_labels2.unshift("date");
 | |
|     data.push(tmp_tab);
 | |
|     data2.push(tmp_tab2);
 | |
| 
 | |
|     var g = new Dygraph(document.getElementById("Graph"), data,
 | |
|     {
 | |
|     labels: curves_labels,
 | |
|     drawPoints: false,
 | |
|     showRoller: true,
 | |
|     rollPeriod: 30,
 | |
|     labelsKMB: true,
 | |
|     logscale: true,
 | |
|     //drawGapEdgePoints: true,
 | |
|     //legend: "always",
 | |
|     //connectSeparatedPoints: true,
 | |
|     stackedGraph: true,
 | |
|     fillGraph: true,
 | |
|     includeZero: true,
 | |
|     });
 | |
| 
 | |
|     var g2 = new Dygraph(document.getElementById("Graph2"), data2,
 | |
|     {
 | |
|     labels: curves_labels2,
 | |
|     drawPoints: false,
 | |
|     showRoller: true,
 | |
|     rollPeriod: 30,
 | |
|     labelsKMB: true,
 | |
|     logscale: true,
 | |
|     //drawGapEdgePoints: true,
 | |
|     //legend: "always",
 | |
|     //connectSeparatedPoints: true,
 | |
|     stackedGraph: true,
 | |
|     fillGraph: true,
 | |
|     includeZero: true,
 | |
|     });
 | |
| 
 | |
| 
 | |
|     var interval = 1000;   //number of mili seconds between each call
 | |
|     var refresh = function() {
 | |
| 
 | |
|         $.ajax({
 | |
|             url: "",
 | |
|             cache: false,
 | |
|             success: function(html) {
 | |
|                 $('#server-name').html(html);
 | |
|                 setTimeout(function() {
 | |
|                     var x = new Date();
 | |
|                     var tmp_values = [];
 | |
|                     var tmp_values2 = [];
 | |
|                     refresh();
 | |
|                     update_values();
 | |
|                     create_queue_table();
 | |
| 
 | |
| 
 | |
|                     for (i = 0; i < (glob_tabvar.row1).length; i++){
 | |
|                         if (glob_tabvar.row1[i][0] == 'Categ' || glob_tabvar.row1[i][0] == 'Curve'){
 | |
|                             tmp_values2.push(glob_tabvar.row1[i][1]);
 | |
|                         }
 | |
|                         else {
 | |
|                             tmp_values.push(glob_tabvar.row1[i][1]);
 | |
|                         }
 | |
|                     }
 | |
|                     tmp_values.unshift(x);
 | |
|                     data.push(tmp_values);
 | |
| 
 | |
|                     tmp_values2.unshift(x);
 | |
|                     data2.push(tmp_values2);
 | |
| 
 | |
|                     if (data.length > 1800) {
 | |
|                         data.shift();
 | |
|                         data2.shift();
 | |
|                     }
 | |
|                     g.updateOptions( { 'file': data } );
 | |
|                     g2.updateOptions( { 'file': data2 } );
 | |
| 
 | |
| 
 | |
|                    // TagCanvas.Reload('myCanvas');
 | |
| 
 | |
|                 }, interval);
 | |
|             }
 | |
|         });
 | |
|     };
 | |
| 
 | |
|     refresh();
 | |
| 
 | |
|     try {
 | |
|       var options = {
 | |
|       weight:true,
 | |
|       weightMode:"both",
 | |
|       noMouse:true,
 | |
|       textColour: '#2E9AFE'
 | |
|       }
 | |
|       TagCanvas.Start('myCanvas','',options);
 | |
|       TagCanvas.SetSpeed('myCanvas', [0.05, -0.15]);
 | |
|     } catch(e) {
 | |
|       // something went wrong, hide the canvas container
 | |
|       document.getElementById('myCanvasContainer').style.display = 'none';
 | |
|     }
 | |
| 
 | |
| });
 |