meshviewer/lib/legend.js

47 lines
1.8 KiB
JavaScript
Raw Normal View History

define(['helper'], function (helper) {
'use strict';
2016-05-27 21:59:01 +00:00
2017-01-26 22:52:34 +00:00
return function (config) {
var self = this;
var stats = document.createTextNode('');
var timestamp = document.createTextNode('');
2017-01-26 22:52:34 +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));
var totalClients = helper.sum(d.nodes.all.filter(helper.online).map(function (n) {
return n.statistics.clients ? n.statistics.clients : 0;
2017-01-26 22:52:34 +00:00
}));
var totalGateways = helper.sum(d.nodes.all.filter(helper.online).filter(function (n) {
return n.flags.gateway;
2017-01-26 22:52:34 +00:00
}).map(helper.one));
2017-01-28 14:33:13 +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
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);
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>';
el.appendChild(p);
2017-01-26 22:52:34 +00:00
p.appendChild(document.createElement('br'));
2017-01-26 22:52:34 +00:00
p.appendChild(stats);
p.appendChild(document.createElement('br'));
2017-01-26 22:52:34 +00:00
p.appendChild(timestamp);
};
2015-08-26 23:31:19 +00:00
return self;
};
});