www/js/list_devices.js

Thu, 18 Apr 2024 14:20:19 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Thu, 18 Apr 2024 14:20:19 +0200
changeset 685
819553a2b97e
permissions
-rw-r--r--

Devices list grid added.

685
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1 /*****************************************************************************
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2 * Copyright (C) 2024
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3 *
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
4 * Michiel Broek <mbroek at mbse dot eu>
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
5 *
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
6 * This file is part of mbsePi-apps
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
7 *
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
8 * This is free software; you can redistribute it and/or modify it
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
9 * under the terms of the GNU General Public License as published by the
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
10 * Free Software Foundation; either version 2, or (at your option) any
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
11 * later version.
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
12 *
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
13 * BrewCloud is distributed in the hope that it will be useful, but
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
14 * WITHOUT ANY WARRANTY; without even the implied warranty of
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
16 * General Public License for more details.
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
17 *
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
18 * You should have received a copy of the GNU General Public License
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
19 * along with ThermFerm; see the file COPYING. If not, write to the Free
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
20 * Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
21 *****************************************************************************/
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
22
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
23
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
24 $(document).ready(function() {
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
25 var source = {
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
26 datatype: 'json',
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
27 cache: false,
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
28 datafields: [
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
29 { name: 'uuid', type: 'string' },
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
30 { name: 'type', type: 'string' },
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
31 { name: 'address', type: 'string' },
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
32 { name: 'subdevice', type: 'int' },
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
33 { name: 'inuse', type: 'int' },
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
34 { name: 'description', type: 'string' },
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
35 { name: 'direction', type: 'string' },
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
36 { name: 'value', type: 'int' },
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
37 { name: 'timestamp', type: 'int' }
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
38 ],
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
39 id: 'uuid',
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
40 url: 'getdevices.php'
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
41 },
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
42 dataAdapter = new $.jqx.dataAdapter(source);
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
43
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
44 // initialize jqxGrid
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
45 $('#jqxgrid').jqxGrid({
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
46 width: 1280,
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
47 height: 630,
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
48 source: dataAdapter,
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
49 theme: theme,
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
50 columns: [
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
51 { text: 'Address', datafield: 'address', width: 200 },
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
52 { text: 'Subdevice', datafield: 'subdevice', width: 100 },
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
53 { text: 'Direction', datafield: 'direction', width: 120 },
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
54 { text: 'Value', datafield: 'value', width: 80 },
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
55 { text: 'Description', datafield: 'description' },
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
56 { text: 'Last change', datafield: 'timestamp', width: 200,
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
57 cellsrenderer: function(index, datafield, value, defaultvalue, column, rowdata) {
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
58 var tzoffset = (new Date()).getTimezoneOffset() * 60000; //offset in milliseconds
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
59 var date = new Date((value * 1000) - tzoffset).toISOString().slice(0, 19).replace("T", " ");;
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
60 return '<span style="margin: 3px; margin-top: 6px; float: left;">' + date + '</span>';
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
61 }
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
62 },
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
63 { text: '', datafield: 'Edit', width: 100, align: 'center', columntype: 'button', cellsrenderer: function() {
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
64 return 'Bekijk';
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
65 }, buttonclick: function(row) {
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
66 var datarecord = dataAdapter.records[row];
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
67 window.location.href = 'edit_device.php?uuid=' + datarecord.uuid;
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
68 }
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
69 }
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
70 ],
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
71 });
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
72
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
73 websocket.onmessage = function(evt) {
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
74 var msg = evt.data;
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
75 var obj = JSON.parse(msg);
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
76
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
77 if (obj.ping) {
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
78 websocket.send('{"pong":' + obj.ping + '}');
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
79 }
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
80
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
81 if (obj.type == 'device') {
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
82 // Use the message to trigger update.
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
83 $('#jqxgrid').jqxGrid('updatebounddata');
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
84 }
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
85 }
819553a2b97e Devices list grid added.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
86 });

mercurial