mirror of
https://github.com/unraid/webgui.git
synced 2026-01-27 12:09:06 -06:00
Optimize chart creation code
This commit is contained in:
@@ -585,8 +585,6 @@ foreach ($users as $user) {
|
||||
Number.prototype.pad = function(size){var s=String(this);while(s.length<(size||2)){s='0'+s;}return s;}
|
||||
Array.prototype.tail = function(t){return this.slice(-t).map(function(o){return o.y;}).join(';');}
|
||||
|
||||
var orange = 70;
|
||||
var red = 90;
|
||||
var ports = [<?=implode(',',array_map('escapestring',$ports))?>];
|
||||
var cpu = [];
|
||||
var rxd = [];
|
||||
@@ -656,28 +654,28 @@ function resetCharts() {
|
||||
rxd = rxd.slice(-netline);
|
||||
txd = txd.slice(-netline);
|
||||
}
|
||||
function addChartCpu(now, load) {
|
||||
var newtime = now + 1;
|
||||
cputime = newtime;
|
||||
for (var i=0; i < cpu.length-cpuline; i++) {
|
||||
// clear values outside graph
|
||||
cpu[i].x = newtime-cpuline;
|
||||
function addChartCpu(load) {
|
||||
cputime++;
|
||||
var i = cpu.length - cpuline;
|
||||
if (i > 0) { // clear value outside graph
|
||||
i = i - 1;
|
||||
cpu[i].x = cputime - cpuline;
|
||||
cpu[i].y = 0;
|
||||
}
|
||||
cpu.push({x:newtime, y:load});
|
||||
cpu.push({x:cputime, y:load});
|
||||
}
|
||||
function addChartNet(now, rx, tx) {
|
||||
var newtime = now + 1;
|
||||
nettime = newtime;
|
||||
for (var i=0; i < rxd.length-netline; i++) {
|
||||
// clear values outside graph
|
||||
rxd[i].x = newtime-netline;
|
||||
txd[i].x = newtime-netline;
|
||||
function addChartNet(rx, tx) {
|
||||
nettime++;
|
||||
var i = rxd.length - netline;
|
||||
if (i > 0) { // clear value outside graph
|
||||
i = i - 1;
|
||||
rxd[i].x = nettime - netline;
|
||||
rxd[i].y = 0;
|
||||
txd[i].x = nettime - netline;
|
||||
txd[i].y = 0;
|
||||
}
|
||||
rxd.push({x:newtime, y:rx});
|
||||
txd.push({x:newtime, y:tx});
|
||||
rxd.push({x:nettime, y:rx});
|
||||
txd.push({x:nettime, y:tx});
|
||||
}
|
||||
<?if ($wireguard):?>
|
||||
function toggleVPN(id,vtun) {
|
||||
@@ -1003,9 +1001,15 @@ function sortTable(table,index) {
|
||||
table.find('tbody[sort="'+n+'"]').appendTo(table);
|
||||
}
|
||||
}
|
||||
function setColor(l, t1, t2) {
|
||||
switch (true) {
|
||||
case (l >= t1): return 'redbar';
|
||||
case (l >= t2): return 'orangebar';
|
||||
default : return '';}
|
||||
}
|
||||
|
||||
var cpuload = new NchanSubscriber('/sub/cpuload');
|
||||
cpuload.on('message',function(data) {
|
||||
cpuload.on('message',function(d) {
|
||||
/*
|
||||
message should be something like: {"cpuload": {"cpu":[0,0],"cpu0":[0,0],"cpu1":[0,0],"cpu2":[0,0],"cpu3":[0,0]}}
|
||||
The array values are [<load-percentage>,<guest-percentage>]. guest-percentage is that part of load-percentage that is being consumed by VM guests
|
||||
@@ -1014,19 +1018,16 @@ cpuload.on('message',function(data) {
|
||||
$('#'+k).animate({width:v[0]+'%'},{step:function(){$('#'+k).css('overflow','visible');}}).text(v[0]+'%');
|
||||
});
|
||||
*/
|
||||
var ini = parseINI(data);
|
||||
var ini = parseINI(d);
|
||||
$.each(ini,function(k,v) {
|
||||
var load = v['host'];
|
||||
if (load >= red) var color = 'redbar';
|
||||
else if (load >= orange) var color = 'orangebar';
|
||||
else var color = '';
|
||||
var color = setColor(load, 90, 70);
|
||||
if (k=='cpu') {
|
||||
addChartCpu(cputime, load);
|
||||
addChartCpu(load);
|
||||
cpuchart.updateSeries([{data:cpu}]);
|
||||
}
|
||||
load += '%';
|
||||
$('.'+k).text(load);
|
||||
$('#'+k).finish().animate({width:load},{step:function(){$('#'+k).css('overflow','visible').removeClass().addClass(color);}});
|
||||
$('.'+k).text(load+'%');
|
||||
$('#'+k).finish().animate({width:load+'%'},{step:function(){$('#'+k).css('overflow','visible').removeClass().addClass(color);}});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1036,9 +1037,7 @@ update1.on('message',function(d) {
|
||||
// memory & disk load
|
||||
$.each(part[0].split('\0'),function(k,v) {
|
||||
var load = v.slice(0,-1);
|
||||
if (load >= <?=$display['critical']?>) var color = 'redbar';
|
||||
else if (load >= <?=$display['warning']?>) var color = 'orangebar';
|
||||
else var color = '';
|
||||
var color = setColor(load, <?=$display['critical']?>, <?=$display['warning']?>);
|
||||
$('.sys'+k).text(v);
|
||||
$('#sys'+k).finish().animate({width:v},{step:function(){$('#sys'+k).css('overflow','visible').removeClass().addClass(color);}});
|
||||
});
|
||||
@@ -1100,7 +1099,7 @@ update3.on('message',function(d) {
|
||||
if (data[0] == port_select) {
|
||||
$('#inbound').text(data[1]);
|
||||
$('#outbound').text(data[2]);
|
||||
addChartNet(nettime, data[3], data[4]);
|
||||
addChartNet(data[3], data[4]);
|
||||
netchart.updateSeries([{data:rxd},{data:txd}]);
|
||||
break;
|
||||
}
|
||||
@@ -1125,9 +1124,9 @@ apcups.on('message',function(d) {
|
||||
|
||||
<?if ($wireguard):?>
|
||||
var wireguard = new NchanSubscriber('/sub/wireguard');
|
||||
wireguard.on('message', function(data) {
|
||||
wireguard.on('message', function(d) {
|
||||
var n = {};
|
||||
var rows = data.split('\0');
|
||||
var rows = d.split('\0');
|
||||
for (var i=0,row; row=rows[i]; i++) {
|
||||
var info = row.split(';');
|
||||
var vtun = info[0];
|
||||
|
||||
Reference in New Issue
Block a user