174 lines
4.2 KiB
JavaScript
174 lines
4.2 KiB
JavaScript
var max_data_plot = 100;
|
|
|
|
var options = {
|
|
legend: { container: $("#chartLegend") },
|
|
xaxis: {
|
|
tickFormatter: function (timestamp, axis) {
|
|
var date = new Date(timestamp * 1000);
|
|
var hours = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours());
|
|
var minutes = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes());
|
|
var seconds = (date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds());
|
|
var formattedTime = hours + ':' + minutes + ':' + seconds;
|
|
return formattedTime;
|
|
}
|
|
},
|
|
series: {
|
|
lines: {
|
|
lineWidth: 2,
|
|
fill: true
|
|
}
|
|
},
|
|
colors: ['#6db431']
|
|
}
|
|
|
|
var data = [];
|
|
|
|
var id = $('.graph').attr('id');
|
|
var plot = $.plot("#" + id, data, options);
|
|
|
|
|
|
var refresh = parseInt($('#refresh').val());
|
|
var incremental = $('#checkbox-incremental').is(':checked');
|
|
var incremental_base = 0;
|
|
var last_inc = 0;
|
|
|
|
refresh_graph();
|
|
|
|
function refresh_graph () {
|
|
var refresh = parseInt($('#refresh').val());
|
|
|
|
var postvars = new Array();
|
|
var postvars = {};
|
|
postvars['graph'] = $('#graph :selected').val();
|
|
postvars['graph_title'] = $('#graph :selected').html();
|
|
|
|
postvars['snmp_community'] = $('#text-snmp_community').val();
|
|
postvars['snmp_oid'] = $('#text-snmp_oid').val();
|
|
postvars['snmp_ver'] = $('#snmp_version :selected').val();
|
|
postvars['snmp_address'] = $('#text-ip_target').val();
|
|
|
|
postvars['refresh'] = refresh;
|
|
|
|
$.ajax({
|
|
url: "extensions/realtime_graphs/ajax.php",
|
|
type: "POST",
|
|
dataType: "json",
|
|
data: postvars,
|
|
success: function(serie) {
|
|
var timestamp = serie.data[0][0];
|
|
data = plot.getData();
|
|
if (data.length == 0) {
|
|
for(i = 0; i < max_data_plot; i ++) {
|
|
step = i * (refresh/1000);
|
|
serie.data.unshift([timestamp-step, 0]);
|
|
}
|
|
|
|
serie = [serie];
|
|
plot = $.plot("#" + id, serie, options);
|
|
return;
|
|
}
|
|
data[0].label = serie.label;
|
|
if (data[0].data.length >= max_data_plot) {
|
|
data[0].data.shift();
|
|
}
|
|
|
|
if (incremental) {
|
|
var last_item = parseInt(data[0].data.length)-1;
|
|
var last_value = data[0].data[last_item][1];
|
|
|
|
var current_value = serie.data[0][1];
|
|
|
|
serie.data[0][1] = current_value - last_inc;
|
|
|
|
last_inc = current_value;
|
|
|
|
// Incremental is always positive
|
|
if (serie.data[0][1] < 0) {
|
|
serie.data[0][1] = 0;
|
|
}
|
|
|
|
}
|
|
|
|
data[0].data.push(serie.data[0]);
|
|
$.plot("#" + id, data, options);
|
|
}
|
|
});
|
|
window.setTimeout(refresh_graph, refresh);
|
|
}
|
|
|
|
$('#graph').change(function() {
|
|
$('form#realgraph').submit();
|
|
});
|
|
|
|
$('#refresh').change(function() {
|
|
//refresh_graph();
|
|
});
|
|
|
|
// Show the SNMP browser window
|
|
function snmpBrowserWindow () {
|
|
|
|
// Keep elements in the form and the SNMP browser synced
|
|
$('#text-target_ip').val($('#text-ip_target').val());
|
|
$('#text-community').val($('#text-snmp_community').val());
|
|
$('#snmp_browser_version').val($('#snmp_version').val());
|
|
$('#snmp3_browser_auth_user').val($('#snmp3_auth_user').val());
|
|
$('#snmp3_browser_security_level').val($('#snmp3_security_level').val());
|
|
$('#snmp3_browser_auth_method').val($('#snmp3_auth_method').val());
|
|
$('#snmp3_browser_auth_pass').val($('#snmp3_auth_pass').val());
|
|
$('#snmp3_browser_privacy_method').val($('#snmp3_privacy_method').val());
|
|
$('#snmp3_browser_privacy_pass').val($('#snmp3_privacy_pass').val());
|
|
|
|
$("#snmp_browser_container").show().dialog ({
|
|
title: '',
|
|
resizable: true,
|
|
draggable: true,
|
|
modal: true,
|
|
overlay: {
|
|
opacity: 0.5,
|
|
background: "black"
|
|
},
|
|
width: 730,
|
|
height: 430
|
|
});
|
|
}
|
|
|
|
// Set the form OID to the value selected in the SNMP browser
|
|
function setOID () {
|
|
$('#text-snmp_oid').val($('#snmp_selected_oid').text());
|
|
|
|
// Close the SNMP browser
|
|
$('.ui-dialog-titlebar-close').trigger('click');
|
|
}
|
|
|
|
$('#checkbox-incremental').change(function() {
|
|
incremental = $('#checkbox-incremental').is(':checked');
|
|
clearGraph();
|
|
});
|
|
|
|
function firstNotZero(data) {
|
|
var notZero = 0;
|
|
for(i = 0; i < data[0].data.length; i ++) {
|
|
if (data[0].data[i][1] != 0) {
|
|
return data[0].data[i][1];
|
|
}
|
|
}
|
|
}
|
|
|
|
function setOnIncremental() {
|
|
|
|
}
|
|
|
|
function clearGraph() {
|
|
data = plot.getData();
|
|
if (data.length == 0) {
|
|
return;
|
|
}
|
|
console.log(data);
|
|
|
|
for(i = 0; i < data[0].data.length; i ++) {
|
|
data[0].data[i][1] = 0;
|
|
}
|
|
|
|
$.plot("#" + id, data, options);
|
|
}
|