Skip to content
Snippets Groups Projects
Select Git revision
  • 5fce84cb5ca01f2783ce1d65c71531b033e55d49
  • develop default protected
2 results

node.js

Blame
  • node.js 9.61 KiB
    define(['sorttable', 'virtual-dom', 'chroma-js', 'moment', 'helper'],
      function (SortTable, V, chroma, moment, helper) {
        'use strict';
    
        function showGeoURI(d) {
          if (!helper.hasLocation(d)) {
            return undefined;
          }
    
          return function (el) {
            var a = document.createElement('a');
            a.textContent = Number(d.nodeinfo.location.latitude.toFixed(6)) + ', ' + Number(d.nodeinfo.location.longitude.toFixed(6));
            a.href = 'geo:' + d.nodeinfo.location.latitude + ',' + d.nodeinfo.location.longitude;
            el.appendChild(a);
          };
        }
    
        function showStatus(d) {
          return function (el) {
            el.classList.add(d.flags.unseen ? 'unseen' : (d.flags.online ? 'online' : 'offline'));
            el.textContent = _.t((d.flags.online ? 'node.lastOnline' : 'node.lastOffline'), {
              time: d.lastseen.fromNow(),
              date: d.lastseen.format('DD.MM.YYYY, H:mm:ss')
            });
          };
        }
    
        function showFirmware(d) {
          var release = helper.dictGet(d.nodeinfo, ['software', 'firmware', 'release']);
          var base = helper.dictGet(d.nodeinfo, ['software', 'firmware', 'base']);
    
          if (release === null || base === null) {
            return undefined;
          }
    
          return release + ' / ' + base;
        }
    
        function showSite(d, config) {
          var site = helper.dictGet(d.nodeinfo, ['system', 'site_code']);
          var rt = site;
          if (config.siteNames) {
            config.siteNames.forEach(function (t) {
              if (site === t.site) {
                rt = t.name;
              }
            });
          }
          return rt;
        }
    
        function showUptime(d) {
          if (!('uptime' in d.statistics)) {
            return undefined;
          }
    
          return moment.duration(d.statistics.uptime, 'seconds').humanize();
        }
    
        function showFirstseen(d) {
          if (!('firstseen' in d)) {
            return undefined;
          }
    
          return d.firstseen.fromNow(true);
        }
    
        function showClients(d) {
          if (!d.flags.online) {
            return undefined;