2017-01-29 23:51:08 +00:00
|
|
|
define(['helper'], function (helper) {
|
|
|
|
'use strict';
|
2016-05-27 21:59:01 +00:00
|
|
|
|
2017-02-12 00:29:37 +00:00
|
|
|
return function (config, language) {
|
2016-05-22 11:23:43 +00:00
|
|
|
var self = this;
|
2017-01-29 23:51:08 +00:00
|
|
|
var stats = document.createTextNode('');
|
|
|
|
var timestamp = document.createTextNode('');
|
2017-01-26 22:52:34 +00:00
|
|
|
|
2017-01-29 23:51:08 +00:00
|
|
|
self.setData = function setData(d) {
|
2017-01-26 22:52:34 +00:00
|
|
|
var totalNodes = helper.sum(d.nodes.all.map(helper.one));
|
|
|
|
var totalOnlineNodes = helper.sum(d.nodes.all.filter(helper.online).map(helper.one));
|
2017-01-29 23:51:08 +00:00
|
|
|
var totalClients = helper.sum(d.nodes.all.filter(helper.online).map(function (n) {
|
2017-10-29 14:11:24 +00:00
|
|
|
return n.clients ? n.clients : 0;
|
2017-01-26 22:52:34 +00:00
|
|
|
}));
|
2017-01-29 23:51:08 +00:00
|
|
|
var totalGateways = helper.sum(d.nodes.all.filter(helper.online).filter(function (n) {
|
2017-10-29 14:11:24 +00:00
|
|
|
return n.is_gateway;
|
2017-01-26 22:52:34 +00:00
|
|
|
}).map(helper.one));
|
|
|
|
|
2017-02-04 15:14:24 +00:00
|
|
|
stats.textContent = _.t('sidebar.nodes', { total: totalNodes, online: totalOnlineNodes }) + ' ' +
|
|
|
|
_.t('sidebar.clients', { smart_count: totalClients }) + ' ' +
|
|
|
|
_.t('sidebar.gateway', { smart_count: totalGateways });
|
2017-01-26 22:52:34 +00:00
|
|
|
|
2017-01-28 14:33:13 +00:00
|
|
|
timestamp.textContent = _.t('sidebar.lastUpdate') + ': ' + d.timestamp.format('DD.MM.Y HH:mm');
|
2017-01-26 22:52:34 +00:00
|
|
|
};
|
2015-08-26 23:31:19 +00:00
|
|
|
|
2017-01-29 23:51:08 +00:00
|
|
|
self.render = function render(el) {
|
|
|
|
var h2 = document.createElement('h2');
|
2017-01-26 22:52:34 +00:00
|
|
|
h2.textContent = config.siteName;
|
|
|
|
el.appendChild(h2);
|
|
|
|
|
2017-02-12 00:29:37 +00:00
|
|
|
language.languageSelect(el);
|
|
|
|
|
2017-01-29 23:51:08 +00:00
|
|
|
var p = document.createElement('p');
|
|
|
|
p.classList.add('legend');
|
2017-01-28 14:33:13 +00:00
|
|
|
p.innerHTML = '<span class="legend-new"><span class="symbol"></span> ' + _.t('sidebar.nodeNew') + '</span>' +
|
|
|
|
'<span class="legend-online"><span class="symbol"></span> ' + _.t('sidebar.nodeOnline') + '</span>' +
|
|
|
|
'<span class="legend-offline"><span class="symbol"></span> ' + _.t('sidebar.nodeOffline') + '</span>';
|
2016-05-22 11:23:43 +00:00
|
|
|
el.appendChild(p);
|
2017-01-26 22:52:34 +00:00
|
|
|
|
2017-01-29 23:51:08 +00:00
|
|
|
p.appendChild(document.createElement('br'));
|
2017-01-26 22:52:34 +00:00
|
|
|
p.appendChild(stats);
|
2017-01-29 23:51:08 +00:00
|
|
|
p.appendChild(document.createElement('br'));
|
2017-01-26 22:52:34 +00:00
|
|
|
p.appendChild(timestamp);
|
2016-05-22 11:23:43 +00:00
|
|
|
};
|
2015-08-26 23:31:19 +00:00
|
|
|
|
2016-05-22 11:23:43 +00:00
|
|
|
return self;
|
|
|
|
};
|
|
|
|
});
|