ail-framework/var/www/static/js/indexjavascript.js
2016-07-15 09:47:00 +02:00

330 lines
10 KiB
JavaScript

// Plot and update the number of processed pastes
$(function() {
var data = [];
var default_minute = (typeof window.default_minute !== "undefined") ? parseInt(window.default_minute) : 10;
var totalPoints = 60*parseInt(default_minute); //60s*minute
var curr_max = 0;
function getData() {
if (data.length > 0){
var data_old = data[0];
data = data.slice(1);
curr_max = curr_max == data_old ? Math.max.apply(null, data) : curr_max;
}
while (data.length < totalPoints) {
var y = (typeof window.paste_num_tabvar !== "undefined") ? parseInt(window.paste_num_tabvar) : 0;
curr_max = y > curr_max ? y : curr_max;
data.push(y);
}
// Zip the generated y values with the x values
var res = [];
for (var i = 0; i < data.length; ++i) {
res.push([i, data[i]])
}
return res;
}
var updateInterval = 1000; //1s
var options = {
series: { shadowSize: 1 },
lines: { fill: true, fillColor: { colors: [ { opacity: 1 }, { opacity: 0.1 } ] }},
yaxis: { min: 0, max: 40 },
colors: ["#a971ff"],
grid: {
tickColor: "#dddddd",
borderWidth: 0
},
};
var plot = $.plot("#realtimechart", [ getData() ], options);
function update() {
plot.setData([getData()]);
plot.getOptions().yaxes[0].max = curr_max;
plot.setupGrid();
plot.draw();
setTimeout(update, updateInterval);
}
update();
});
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 (parsedmess[0] == "Global"){
var paste_processed = parsedmess[4].split(" ")[2];
window.paste_num_tabvar = paste_processed;
return;
}
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 = "&nbsp;";
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';
}
});