5 var callSystemInfo
= rpc
.declare({
10 function progressbar(value
, max
, byte) {
11 var vn
= parseInt(value
) || 0,
12 mn
= parseInt(max
) || 100,
13 fv
= byte ? String
.format('%1024.2mB', value
) : value
,
14 fm
= byte ? String
.format('%1024.2mB', max
) : max
,
15 pc
= Math
.floor((100 / mn
) * vn
);
18 'class': 'cbi-progressbar',
19 'title': '%s / %s (%d%%)'.format(fv
, fm
, pc
)
20 }, E('div', { 'style': 'width:%.2f%%'.format(pc
) }));
23 return baseclass
.extend({
27 return L
.resolveDefault(callSystemInfo(), {});
30 render: function(systeminfo
) {
31 var mem
= L
.isObject(systeminfo
.memory
) ? systeminfo
.memory
: {},
32 swap
= L
.isObject(systeminfo
.swap
) ? systeminfo
.swap
: {};
35 _('Total Available'), (mem
.available
) ? mem
.available
: (mem
.total
&& mem
.free
&& mem
.buffered
) ? mem
.free
+ mem
.buffered
: null, mem
.total
,
36 _('Used'), (mem
.total
&& mem
.free
) ? (mem
.total
- mem
.free
) : null, mem
.total
,
37 _('Buffered'), (mem
.total
&& mem
.buffered
) ? mem
.buffered
: null, mem
.total
41 fields
.push(_('Cached'), mem
.cached
, mem
.total
);
44 fields
.push(_('Swap free'), swap
.free
, swap
.total
);
46 var table
= E('table', { 'class': 'table' });
48 for (var i
= 0; i
< fields
.length
; i
+= 3) {
49 table
.appendChild(E('tr', { 'class': 'tr' }, [
50 E('td', { 'class': 'td left', 'width': '33%' }, [ fields
[i
] ]),
51 E('td', { 'class': 'td left' }, [
52 (fields
[i
+ 1] != null) ? progressbar(fields
[i
+ 1], fields
[i
+ 2], true) : '?'