www/js/mon_node.js

changeset 695
cfe232710027
parent 578
e75ce5bbda73
child 703
faeede125639
--- a/www/js/mon_node.js	Sun May 24 12:12:34 2020 +0200
+++ b/www/js/mon_node.js	Thu May 28 14:23:14 2020 +0200
@@ -23,7 +23,8 @@
 
 $(document).ready(function() {
 
- var url = 'getnode.php?uuid="' + my_uuid + '"',
+ var record = {},
+ url = 'getnode.php?uuid="' + my_uuid + '"',
  source = {
   datatype: 'json',
   datafields: [
@@ -55,50 +56,78 @@
  },
  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>';
+   record = dataAdapter.records[0];
+   updateScreen();
+  }
+ });
+
+ function updateScreen() {
+  var 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>';
+  if (record.online) {
    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.temperature > 0)
+    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>';
+   if (record.net_rssi < 0)
+    html += '<tr><td>WiFi signaal</td><td>' + record.net_rssi + '</td></tr>';
+   html += '<tr><td>Update interval</td><td>' + record.up_interval + ' sec.</td></tr>';
+  }
+  html += '</<table>';
+  html += '</div>';
+  $('#ContentPanel').html(html);
+ }
+
+ // Get the data.
+ dataAdapter.dataBind();
+
+ websocket.onmessage = function(evt) {
+  var msg = evt.data;
+  var obj = JSON.parse(msg);
+  if (! obj.device && obj.node == record.node) {
+   record.online = obj.online;
    if (record.online) {
-    if (record.temperature > 0) {
-     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>';
-    if (record.net_rssi < 0) {
-     html += '<tr><td>WiFi signaal</td><td>' + record.net_rssi + '</td></tr>';
-    }
-    html += '<tr><td>Update interval</td><td>' + record.up_interval + ' sec.</td></tr>';
+    record.group_id = obj.group_id;
+    record.lastseen = obj.lastseen;
+    if (obj.hardwaremake)
+     record.harwaremake = obj.hardwaremake;
+    if (obj.hardwaremodel)
+     record.hardwaremodel = obj.hardwaremodel;
+    if (obj.os)
+     record.os = obj.os;
+    if (obj.os_version)
+     record.os_version = obj.os_version;
+    if (obj.firmware)
+     record.firmware = obj.firmware;
+    if (obj.temperature)
+     record.temperature = obj.temperature;
+    if (obj.humidity)
+     record.humidity = obj.humidity;
+    record.net_ifname = obj.net_ifname;
+    record.net_address = obj.net_address;
+    if (obj.net_rssi)
+     record.net_rssi = obj.net_rssi;
    }
-   html += '</<table>';
-   html += '</div>';
-   $('#ContentPanel').html(html);
+   updateScreen();
   }
- });
-
- // Get the data immediatly and then at regular intervals to refresh.
- dataAdapter.dataBind();
- setInterval(function() {
-  dataAdapter.dataBind();
- }, 30000);
+ }
 });
 

mercurial