46 lines
1008 B
JavaScript
46 lines
1008 B
JavaScript
'use strict';
|
|
'require rpc';
|
|
|
|
var callCPUFreeInfo = rpc.declare({
|
|
object: 'luci',
|
|
method: 'getCPUUsage'
|
|
});
|
|
|
|
function progressbar(value, max) {
|
|
var vn = parseInt(value) || 0,
|
|
mn = parseInt(max) || 100,
|
|
pc = Math.floor((100 / mn) * vn);
|
|
|
|
return E('div', {
|
|
'class': 'cbi-progressbar',
|
|
'title': '%s%% / %s%%'.format(vn, mn, pc)
|
|
}, E('div', { 'style': 'width:%.2f%%'.format(pc) }));
|
|
}
|
|
|
|
return L.Class.extend({
|
|
title: _('CPU'),
|
|
|
|
load: function() {
|
|
return L.resolveDefault(callCPUFreeInfo(), {});
|
|
},
|
|
|
|
render: function(info) {
|
|
var fields = [
|
|
_('Used'), (info.cpuusage) ? info.cpuusage : 0, 100
|
|
];
|
|
|
|
var table = E('div', { 'class': 'table cpu' });
|
|
|
|
for (var i = 0; i < fields.length; i += 3) {
|
|
table.appendChild(E('div', { 'class': 'tr' }, [
|
|
E('div', { 'class': 'td left', 'width': '33%' }, [ fields[i] ]),
|
|
E('div', { 'class': 'td left' }, [
|
|
(fields[i + 1] != null) ? progressbar(fields[i + 1], fields[i + 2], true) : '?'
|
|
])
|
|
]));
|
|
}
|
|
|
|
return table;
|
|
}
|
|
});
|