www/js/mon_node.js

changeset 181
db4e62482d0b
child 494
af28ebe4a779
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/www/js/mon_node.js	Mon Jan 07 16:46:43 2019 +0100
@@ -0,0 +1,97 @@
+/*****************************************************************************
+ * 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 + "'";
+	var source = {
+		datatype: "json",
+		datafields: [
+			{ name: 'record', type: 'int' },
+			{ name: 'uuid', type: 'string' },
+			{ name: 'node', type: 'string' },
+			{ name: 'online', type: 'bool' },
+			{ 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
+	};
+
+	var dataAdapter = new $.jqx.dataAdapter(source, {
+		loadComplete: function (records) {
+			var record = dataAdapter.records[0];
+			var 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>" + record.online + "</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