www/js/set_global.js

Mon, 22 Apr 2024 20:58:55 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Mon, 22 Apr 2024 20:58:55 +0200
changeset 697
685f20ad87ed
child 698
92a080c1a5d5
permissions
-rw-r--r--

The global settings screen added. No Save function yet.

/*****************************************************************************
 * Copyright (C) 2024
 *
 * Michiel Broek <mbroek at mbse dot eu>
 *
 * This file is part of mbsePi-apps
 *
 * 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.
 *
 * BrewCloud is distributed 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 global = {},
 globalSource = {
  datatype: 'json',
  cache: false,
  datafields: [
   { name: 'type', type: 'string' },
   { name: 'name', type: 'string' },
   { name: 'uuid', type: 'string' },
   { name: 'node', type: 'string' },
   { name: 'os' },
   { name: 'os_version' },
   { name: 'FW' },
   { name: 'server_port', type: 'int' },
   { name: 'websocket_port', type: 'int' },
   { name: 'thb_temp_uuid', map: 'THB>temperature>uuid' },
   { name: 'temp_uuid', map: 'THB>temperature>uuid' },
   { name: 'temp_state', map: 'THB>temperature>state' },
   { name: 'temp_value', map: 'THB>temperature>value', type: 'int' },
   { name: 'hum_uuid', map: 'THB>humidity>uuid' },
   { name: 'hum_state', map: 'THB>humidity>state' },
   { name: 'hum_value', map: 'THB>humidity>value', type: 'int' },
   { name: 'temp_hum_idx', map: 'THB>index', type: 'int' },
   { name: 'lcd_address', map: 'LCD>address' },
   { name: 'lcd_cols', map: 'LCD>cols', type: 'int' },
   { name: 'lcd_rows', map: 'LCD>rows', type: 'int' },
   { name: 'mqtt_host', map: 'MQTT>host' },
   { name: 'mqtt_port', map: 'MQTT>port', type: 'int' },
   { name: 'mqtt_username', map: 'MQTT_username' },
   { name: 'mqtt_password', map: 'MQTT_password' }
  ],
  id: 'name',
  url: 'getglobal.php'
 },
 globalData = new $.jqx.dataAdapter(globalSource, {
  loadComplete: function(records) {
   global = globalData.records[0];
   updateScreen();
  }
 }),
 tzoffset = (new Date()).getTimezoneOffset() * 60000; //offset in milliseconds

 function updateScreen() {
  $('#name').val(global.name);
  $('#uuid').val(global.uuid);
  $('#node').val(global.node);
  $('#os').val(global.os + ' ' + global.os_version);
  $('#FW').val(global.FW);
  $('#server_port').val(global.server_port);
  $('#websocket_port').val(global.websocket_port);
  $('#temp_uuid').val(global.temp_uuid);
  $('#temp_state').val(global.temp_state);
  $('#temp_value').val(global.temp_value / 1000.0);
  $('#hum_uuid').val(global.hum_uuid);
  $('#hum_state').val(global.hum_state);
  $('#hum_value').val(global.hum_value / 1000.0);
  $('#temp_hum_idx').val(global.temp_hum_idx);
  $('#lcd_address').val(global.lcd_address);
  $('#lcd_cols').val(global.lcd_cols);
  $('#lcd_rows').val(global.lcd_rows)
  $('#mqtt_host').val(global.mqtt_host);
  $('#mqtt_port').val(global.mqtt_port);
  $('#mqtt_username').val(global.mqtt_username);
  $('#mqtt_password').val(global.mqtt_password);
 }

 // initialize the input fields.
 $('#name').jqxInput({ theme: theme, width: 240, height: 23 });
 $('#uuid').jqxInput({ theme: theme, width: 480, height: 23 });
 $('#node').jqxInput({ theme: theme, width: 240, height: 23 });
 $('#os').jqxInput({ theme: theme, width: 240, height: 23 });
 $('#FW').jqxInput({ theme: theme, width: 120, height: 23 });
 $('#server_port').jqxNumberInput(Spin0dec);
 $('#websocket_port').jqxNumberInput(Spin0dec);
 $('#temp_uuid').jqxDropDownList({
  theme: theme,
  source: tempsensorlist,
  valueMember: 'uuid',
  displayMember: 'name',
  width: 240,
  dropDownWidth: 480,
  autoDropDownHeight: true
 });
 $('#temp_state').jqxInput({ theme: theme, width: 120, height: 23 });
 $('#temp_value').jqxNumberInput(Show1dec);
 $('#hum_uuid').jqxDropDownList({
  theme: theme,
  source: tempsensorlist,
  valueMember: 'uuid',
  displayMember: 'name',
  width: 240,
  dropDownWidth: 480,
  autoDropDownHeight: true
 });
 $('#hum_state').jqxInput({ theme: theme, width: 120, height: 23 });
 $('#hum_value').jqxNumberInput(Show1dec);
 $('#temp_hum_idx').jqxNumberInput(Spin0dec);

 $('#lcd_address').jqxNumberInput(Spin0dec);
 $('#lcd_cols').jqxNumberInput(GPIOInt);
 $('#lcd_rows').jqxNumberInput(GPIOInt);

 $('#mqtt_host').jqxInput({ theme: theme, width: 240, height: 23 });
 $('#mqtt_port').jqxNumberInput(Spin0dec);
 $('#mqtt_username').jqxInput({ theme: theme, width: 240, height: 23 });
 $('#mqtt_password').jqxInput({ theme: theme, width: 240, height: 23 });

 globalData.dataBind();


 $('#Save').jqxButton({ template: 'success', width: '90px', theme: theme });
 $('#Save').click(function() {
  var row, rowID = -1;
  if (editrow >= 0) {
   rowID = $('#jqxgrid').jqxGrid('getrowid', editrow);
  }
  row = {
   uuid: dataRecord.uuid,
   type: $('#type').val()
  };
//   $('#jqxgrid').jqxGrid('updaterow', rowID, row);
 });

 websocket.onmessage = function(evt) {
  var msg = evt.data;
  var obj = JSON.parse(msg);

  if (obj.ping) {
   websocket.send('{"pong":' + obj.ping + '}');
  }

  if (obj.type == 'global') {
   // Use the message to trigger update.
//   $('#jqxgrid').jqxGrid('updatebounddata');
  }
 }
});

mercurial