www/js/mon_node.js

Sun, 15 Dec 2019 16:49:29 +0100

author
Michiel Broek <mbroek@mbse.eu>
date
Sun, 15 Dec 2019 16:49:29 +0100
changeset 573
c4c891d5c4f8
parent 572
7a03181d29a3
child 578
e75ce5bbda73
permissions
-rw-r--r--

Fix a small bug in mon_nodes view. More relaxed check nodes timeout, now 5 seconds instead of 0,1 second.

/*****************************************************************************
 * Copyright (C) 2019
 *
 * Michiel Broek <mbroek at mbse dot eu>
 *
 * This file is part of BMS
 *
 * This is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License as published by the
 * Free Software Foundation; either version 2, or (at your option) any
 * later version.
 *
 * Brewery Management System istributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with ThermFerm; see the file COPYING.  If not, write to the Free
 * Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
 *****************************************************************************/


$(document).ready(function() {

 var url = 'getnode.php?uuid="' + my_uuid + '"',
 source = {
  datatype: 'json',
  datafields: [
   { name: 'record', type: 'int' },
   { name: 'uuid', type: 'string' },
   { name: 'node', type: 'string' },
   { name: 'online', type: 'int' },
   { name: 'group_id', type: 'string' },
   { name: 'hardwaremake', type: 'string' },
   { name: 'hardwaremodel', type: 'string' },
   { name: 'os', type: 'string' },
   { name: 'os_version', type: 'string' },
   { name: 'firmware', type: 'string' },
   { name: 'firstseen', type: 'string' },
   { name: 'lastseen', type: 'string' },
   { name: 'temperature', type: 'float' },
   { name: 'humidity', type: 'float' },
   { name: 'barometer', type: 'float' },
   { name: 'gps_latitude', type: 'float' },
   { name: 'gps_longitude', type: 'float' },
   { name: 'gps_altitude', type: 'float' },
   { name: 'net_address', type: 'string' },
   { name: 'net_ifname', type: 'string' },
   { name: 'net_rssi', type: 'int' }
  ],
  id: 'record',
  url: url
 },
 dataAdapter = new $.jqx.dataAdapter(source, {
  loadComplete: function(records) {
   var record = dataAdapter.records[0],
   oline = (record.online) ? 'On-line' : 'Off-line',
   html = '<div id="node_table">';
   html += '<table style="width: 100%; padding: 10px;">';
   html += '<tr><th colspan=2>Systeem overzicht</th></tr>';
   html += '<tr><td>Uuid</td><td>' + record.uuid + '</td></tr>';
   html += '<tr><td>Systeem</td><td>' + record.node + '</td></tr>';
   html += '<tr><td>Online</td><td>' + oline + '</td></tr>';
   html += '<tr><td>Type</td><td>' + record.group_id + '</td></tr>';
   html += '<tr><td>Eerst gezien</td><td>' + record.firstseen + '</td></tr>';
   html += '<tr><td>Laatst gezien</td><td>' + record.lastseen + '</td></tr>';
   html += '<tr><td>Hardware maker</td><td>' + record.hardwaremake + '</td></tr>';
   html += '<tr><td>Hardware model</td><td>' + record.hardwaremodel + '</td></tr>';
   html += '<tr><td>OS</td><td>' + record.os + ' versie: ' + record.os_version + '</td></tr>';
   html += '<tr><td>Firmware</td><td>' + record.firmware + '</td></tr>';
   if (record.online) {
    html += '<tr><td>Temperatuur</td><td>' + record.temperature.toFixed(1) + '&deg;C</td></tr>';
    if (record.humidity > 0) {
     html += '<tr><td>Vochtigheid</td><td>' + record.humidity.toFixed(1) + '%</td></tr>';
    }
    if (record.barometer > 0) {
     html += '<tr><td>Luchtdruk</td><td>' + record.barometer.toFixed(0) + '</td></tr>';
    }
    if ((record.gps_latitude != 0) && (record.gps_longitude != 0)) {
     html += '<tr><td>GPS</td><td>' + record.gps_latitude + ' ' + record.gps_longitude + ' ' + record.gps_altitude + '</td></tr>';
    }
    html += '<tr><td>Netwerk</td><td>' + record.net_ifname + ' ' + record.net_address + '</td></tr>';
   }
   html += '</<table>';
   html += '</div>';
   $('#ContentPanel').html(html);
  }
 });

 // Get the data immediatly and then at regular intervals to refresh.
 dataAdapter.dataBind();
 setInterval(function() {
  dataAdapter.dataBind();
 }, 30000);
});

mercurial