'use strict';'require baseclass';'require rpc';var callSystemInfo=rpc.declare({object:'system',method:'info'});function progressbar(value,max,byte){var vn=parseInt(value)||0,mn=parseInt(max)||100,fv=byte?String.format('%1024.2mB',value):value,fm=byte?String.format('%1024.2mB',max):max,pc=Math.floor((100/mn)*vn);return E('div',{'class':'cbi-progressbar','title':'%s / %s (%d%%)'.format(fv,fm,pc)},E('div',{'style':'width:%.2f%%'.format(pc)}));}
return baseclass.extend({title:_('Memory'),load:function(){return L.resolveDefault(callSystemInfo(),{});},render:function(systeminfo){var mem=L.isObject(systeminfo.memory)?systeminfo.memory:{},swap=L.isObject(systeminfo.swap)?systeminfo.swap:{};var fields=[_('Total Available'),(mem.available)?mem.available:(mem.total&&mem.free&&mem.buffered)?mem.free+mem.buffered:null,mem.total,_('Used'),(mem.total&&mem.free)?(mem.total-mem.free):null,mem.total,];if(mem.buffered)
fields.push(_('Buffered'),mem.buffered,mem.total);if(mem.cached)
fields.push(_('Cached'),mem.cached,mem.total);if(swap.total>0)
fields.push(_('Swap free'),swap.free,swap.total);var table=E('table',{'class':'table'});for(var i=0;i<fields.length;i+=3){table.appendChild(E('tr',{'class':'tr'},[E('td',{'class':'td left','width':'33%'},[fields[i]]),E('td',{'class':'td left'},[(fields[i+1]!=null)?progressbar(fields[i+1],fields[i+2],true):'?'])]));}
return table;}});