1 <?php |
1 <?php |
|
2 $my_style = 'android'; |
|
3 require_once('version.php'); |
|
4 ?> |
|
5 <!DOCTYPE html> |
|
6 <html lang="en"> |
|
7 <head>' |
|
8 <meta http-equiv="content-type" content="text/html; charset=utf-8" /> |
|
9 <title id='Description'>Brewery Managment System v<?php echo $my_version; ?></title> |
|
10 <link type="text/css" href="css/style.css" rel="stylesheet" media="all" /> |
|
11 <link type="text/css" href="jqwidgets/styles/jqx.base.css" rel="stylesheet" /> |
|
12 <link type="text/css" href="jqwidgets/styles/jqx.<?php echo $my_style; ?>.css" rel="stylesheet" /> |
|
13 <meta name="viewport" content="width=device-width, initial-scale=1 maximum-scale=1 minimum-scale=1" /> |
|
14 <script src="js/jquery-1.11.1.min.js"></script> |
|
15 <script src="jqwidgets/jqxcore.js"></script> |
|
16 <script src="jqwidgets/jqxbuttons.js"></script> |
|
17 <script src="jqwidgets/jqxscrollbar.js"></script> |
|
18 <script src="jqwidgets/jqxpanel.js"></script> |
|
19 <script src="jqwidgets/jqxtree.js"></script> |
|
20 <script src="jqwidgets/jqxexpander.js"></script> |
|
21 <script src="jqwidgets/jqxsplitter.js"></script> |
|
22 <script src="jqwidgets/jqxdata.js"></script> |
|
23 <script> |
|
24 $(document).ready(function () { |
|
25 /* |
|
26 * Different right panel pages |
|
27 */ |
|
28 var aNode = '<div class="nodeContainer">Node scherm </div>'; |
|
29 var aFermenter = '<div class="fermenterContainer">Fermenter scherm </div>'; |
|
30 $("#splitter").jqxSplitter({ theme: "<?php echo $my_style; ?>", width: 1278, height: 618, panels: [{ size: 250}] }); |
|
31 $("#jqxTree").jqxTree({ theme: "<?php echo $my_style; ?>", height: "100%", width: "100%" }); |
|
32 /* |
|
33 * Build the nodes subtree |
|
34 */ |
|
35 var nodeByID = $("#jqxTree").find("#Nodes")[0]; |
|
36 $.getJSON("getnodes.php", function(data) { |
|
37 for( i = 0; i < data.length; i++ ) { |
|
38 console.log( "JSON Data: " + data[i].uuid + " " + data[ i ].node ); |
|
39 $("#jqxTree").jqxTree("addTo", { id: 'node-' + data[i].uuid, label: data[i].node, icon: 'images/folder.png' }, nodeByID); |
|
40 } |
|
41 }); |
|
42 /* |
|
43 * Build the fermenters subtree |
|
44 */ |
|
45 var fermenterByID = $("#jqxTree").find("#Fermenters")[0]; |
|
46 $.getJSON("getfermenters.php", function(data) { |
|
47 for( i = 0; i < data.length; i++ ) { |
|
48 console.log( "JSON Data: " + data[i].uuid + " " + data[i].node ); |
|
49 $("#jqxTree").jqxTree("addTo", { id: 'fermenter-' + data[i].uuid, label: data[i].node + "/" + data[i].alias, icon: 'images/folder.png' }, fermenterByID); |
|
50 } |
|
51 }); |
2 |
52 |
|
53 $("#jqxTree").css("visibility", "visible"); |
3 |
54 |
4 /* |
55 $("#jqxTree").on("select", function (event) { |
5 * Look for the style names in the jqwidgets/styles directory. |
56 /* |
6 */ |
57 * Process the selected id from the left panel tree and show the correct page in the right panel. |
7 $my_style = 'ui-redmond'; |
58 */ |
8 //$my_style = 'ui-darkness'; |
59 var estr = event.args.element.id; |
9 $my_style = 'metrodark'; |
60 if (estr == "Root") { |
10 //$my_style = 'android'; |
61 $("#ContentPanel").html("<div style='margin: 10px;'>RrrR</div>"); |
|
62 } else if (estr.indexOf("node-", 0) == 0) { |
|
63 // Load and show a node. |
|
64 // The parameter is: node-36d4d030-4d62-4f2f-a96b-472e643687f7 |
|
65 var uuid = estr.substr(5); |
|
66 var url = "getnode.php?uuid='" + uuid + "'"; |
|
67 var source = { |
|
68 datatype: "json", |
|
69 datafields: [ |
|
70 { name: 'record', type: 'int' }, |
|
71 { name: 'uuid', type: 'string' }, |
|
72 { name: 'node', type: 'string' }, |
|
73 { name: 'online', type: 'string' }, |
|
74 { name: 'group_id', type: 'string' }, |
|
75 { name: 'hardwaremake', type: 'string' }, |
|
76 { name: 'hardwaremodel', type: 'string' }, |
|
77 { name: 'os', type: 'string' }, |
|
78 { name: 'os_version', type: 'string' }, |
|
79 { name: 'firmware', type: 'string' }, |
|
80 { name: 'firstseen', type: 'string' }, |
|
81 { name: 'lastseen', type: 'string' }, |
|
82 { name: 'temperature', type: 'float' }, |
|
83 { name: 'humidity', type: 'float' }, |
|
84 { name: 'barometer', type: 'float' }, |
|
85 { name: 'gps_latitude', type: 'float' }, |
|
86 { name: 'gps_longitude', type: 'float' }, |
|
87 { name: 'gps_altitude', type: 'float' }, |
|
88 { name: 'net_address', type: 'string' }, |
|
89 { name: 'net_ifname', type: 'string' }, |
|
90 { name: 'net_rssi', type: 'int' } |
|
91 ], |
|
92 id: 'record', |
|
93 url: url |
|
94 }; |
|
95 var dataAdapter = new $.jqx.dataAdapter(source, { |
|
96 loadComplete: function (records) { |
|
97 var record = dataAdapter.records[0]; |
|
98 var html = "<div style='background: #252526; margin: 50px;'>"; |
|
99 html += "<table style='width: 100%; padding: 10px;'>"; |
|
100 html += "<tr><th colspan=2>Systeem overzicht</th></tr>"; |
|
101 html += "<tr><td>Uuid</td><td>" + record.uuid + "</td></tr>"; |
|
102 html += "<tr><td>Systeem</td><td>" + record.node + "</td></tr>"; |
|
103 html += "<tr><td>Online</td><td>" + record.online + "</td></tr>"; |
|
104 html += "<tr><td>Type</td><td>" + record.group_id + "</td></tr>"; |
|
105 html += "<tr><td>Hardware maker</td><td>" + record.hardwaremake+ "</td></tr>"; |
|
106 html += "<tr><td>Hardware model</td><td>" + record.harwaremodel+ "</td></tr>"; |
|
107 html += "<tr><td>OS</td><td>" + record.os + " versie: " + record.os_version + "</td></tr>"; |
|
108 html += "<tr><td>Firmware</td><td>" + record.firmware + "</td></tr>"; |
|
109 html += "<tr><td>Temperatuur</td><td>" + record.temperature + "°C</td></tr>"; |
|
110 html += "<tr><td>Vochtigheid</td><td>" + record.humidity + "%</td></tr>"; |
|
111 html += "<tr><td>Luchtdruk</td><td>" + record.barometer + "</td></tr>"; |
|
112 html += "<tr><td>GPS</td><td>"+ record.gps_latitude + " " + record.gps_longitude + " " + record.gps_altitude + "</td></tr>"; |
|
113 html += "<tr><td>Netwerk</td><td>"+ record.net_ifname + " " + record.net_address + "</td></tr>"; |
|
114 html += "</<table>"; |
|
115 html += "</div>"; |
|
116 $("#ContentPanel").html(html); |
|
117 } |
|
118 /* Data formatteren etc. Zie https://www.jqwidgets.com/jquery-widgets-demo/demos/jqxdataadapter/index.htm#demos/jqxdataadapter/bindingtojson.htm */ |
|
119 }); |
|
120 dataAdapter.dataBind(); |
11 |
121 |
12 require_once('version.php'); |
122 } else if (estr.indexOf("fermenter-", 0) == 0) { |
|
123 var uuid = estr.substr(10); |
|
124 $("#ContentPanel").html("<div style='margin: 10px;'>" + uuid + "</div>"); |
|
125 } else if (event.args.element.id == "Nodes") { |
|
126 $("#ContentPanel").html(aNode); |
|
127 } else { |
|
128 $("#ContentPanel").html("<div style='margin: 10px;'>" + event.args.element.id + "</div>"); |
|
129 } |
|
130 }); |
|
131 }); |
|
132 </script> |
|
133 </head> |
13 |
134 |
14 |
135 <body class="default"> |
15 $outstr = '<!DOCTYPE html>'.PHP_EOL; |
136 <div id="jqxWidget"> |
16 $outstr .= '<html lang="en">'.PHP_EOL; |
137 <div id="header"> |
17 $outstr .= ' <head>'.PHP_EOL; |
138 <div id="title">BMS <?php echo $my_version; ?></div> |
18 $outstr .= ' <meta http-equiv="content-type" content="text/html; charset=utf-8" />'.PHP_EOL; |
139 </div> <!-- header --> |
19 $outstr .= ' <title id="Description">Brewery Managment System v'.$my_version.'</title>'.PHP_EOL; |
140 <div id="splitter"> |
20 $outstr .= ' <link type="text/css" href="css/style.css" rel="stylesheet" media="all" />'.PHP_EOL; |
141 <div> <!-- tree panel --> |
21 $outstr .= ' <link type="text/css" href="jqwidgets/styles/jqx.base.css" rel="stylesheet" />'.PHP_EOL; |
142 <div style="visibility: hidden; border: none;" id='jqxTree'> |
22 $outstr .= ' <link type="text/css" href="jqwidgets/styles/jqx.'.$my_style.'.css" rel="stylesheet" />'.PHP_EOL; |
143 <ul> |
23 $outstr .= ' <meta name="viewport" content="width=device-width, initial-scale=1 maximum-scale=1 minimum-scale=1" />'.PHP_EOL; |
144 <li id="Root" item-expanded='true'> |
24 $outstr .= ' <script src="js/jquery-1.11.1.min.js"></script>'.PHP_EOL; |
145 <img style='float: left; margin-right: 5px;' src='images/earth.png' /> |
25 $outstr .= ' <script src="jqwidgets/jqxcore.js"></script>'.PHP_EOL; |
146 <span item-title="true">Root</span> |
26 $outstr .= ' <script src="jqwidgets/jqxbuttons.js"></script>'.PHP_EOL; |
147 <ul> |
27 $outstr .= ' <script src="jqwidgets/jqxscrollbar.js"></script>'.PHP_EOL; |
148 <li id="Nodes"> |
28 $outstr .= ' <script src="jqwidgets/jqxpanel.js"></script>'.PHP_EOL; |
149 <img style='float: left; margin-right: 5px;' src='images/folder.png' /> |
29 $outstr .= ' <script src="jqwidgets/jqxtree.js"></script>'.PHP_EOL; |
150 <span item-title="true">Systemen</span> |
30 $outstr .= ' <script src="jqwidgets/jqxexpander.js"></script>'.PHP_EOL; |
151 <!-- Subtree nodes --> |
31 $outstr .= ' <script src="jqwidgets/jqxsplitter.js"></script>'.PHP_EOL; |
152 </li> |
32 $outstr .= ' <script>'.PHP_EOL; |
153 <li id="Fermenters"> |
33 $outstr .= ' $(document).ready(function () {'.PHP_EOL; |
154 <img style='float: left; margin-right: 5px;' src='images/folder.png' /> |
34 $outstr .= ' // Create jqxTree'.PHP_EOL; |
155 <span item-title="true">Klimatkasten</span> |
35 $outstr .= ' $("#splitter").jqxSplitter({ theme: "'.$my_style.'", width: 1278, height: 618, panels: [{ size: 250}] });'.PHP_EOL; |
156 <!-- Subtree fermenters --> |
36 $outstr .= ' $("#jqxTree").jqxTree({ theme: "'.$my_style.'", height: "100%", width: "100%" });'.PHP_EOL; |
157 </li> |
37 /* |
158 <li id="Brewboards"> |
38 * Build the nodes subtree |
159 <img src='images/settings.png' /> |
39 */ |
160 <span item-title="true">Brouw apparatuur</span> |
40 $outstr .= ' var nodeByID = $("#jqxTree").find("#Nodes")[0];'.PHP_EOL; |
161 </li> |
41 $outstr .= ' $.getJSON("getnodes.php", function(data) {'.PHP_EOL; |
162 <li id="Prducing"> |
42 $outstr .= ' for( i = 0; i < data.length; i++ ) {'.PHP_EOL; |
163 <img src='images/system.png' /> |
43 $outstr .= ' console.log( "JSON Data: " + data[i].uuid + " " + data[ i ].node );'.PHP_EOL; |
164 <span item-title="true">In productie</span> |
44 $outstr .= ' $("#jqxTree").jqxTree("addTo", { id: data[i].uuid, label: data[i].node, icon: \'images/folder.png\' }, nodeByID);'.PHP_EOL; |
165 </li> |
45 $outstr .= ' }'.PHP_EOL; |
166 <li id="Recipes"> |
46 $outstr .= ' });'.PHP_EOL; |
167 <img style='float: left; margin-right: 5px;' src='images/beer.png' /> |
47 /* |
168 <span item-title="true">Recepten</span> |
48 * Build the fermenters subtree |
169 </li> |
49 */ |
170 <li id="Settings"> |
50 $outstr .= ' var fermenterByID = $("#jqxTree").find("#Fermenters")[0];'.PHP_EOL; |
171 <img style='float: left; margin-right: 5px;' src='images/setupIcon.png' /> |
51 $outstr .= ' $.getJSON("getfermenters.php", function(data) {'.PHP_EOL; |
172 <span item-title="true">Instellingen</span> |
52 $outstr .= ' for( i = 0; i < data.length; i++ ) {'.PHP_EOL; |
173 </li> |
53 $outstr .= ' console.log( "JSON Data: " + data[i].uuid + " " + data[i].node );'.PHP_EOL; |
174 </ul> |
54 $outstr .= ' $("#jqxTree").jqxTree("addTo", { id: data[i].uuid, label: data[i].node + "/" + data[i].alias, icon: \'images/folder.png\' }, fermenterByID);'.PHP_EOL; |
175 </li> |
55 $outstr .= ' }'.PHP_EOL; |
176 </ul> |
56 $outstr .= ' });'.PHP_EOL; |
177 </div> <!-- jqxTree --> |
57 |
178 </div> <!-- tree panel --> |
58 $outstr .= ' $("#jqxTree").css("visibility", "visible");'.PHP_EOL; |
179 <div id="ContentPanel"> |
59 //$outstr .= ' $("#jqxTree").jqxTree("render");'.PHP_EOL; |
180 </div> |
60 $outstr .= ' $("#jqxTree").on("select", function (event) {'.PHP_EOL; |
181 </div> <!--- splitter --> |
61 $outstr .= ' $("#ContentPanel").html("<div style=\'margin: 10px;\'>" + event.args.element.id + "</div>");'.PHP_EOL; |
182 </div> <!-- jqxWidget --> |
62 $outstr .= ' });'.PHP_EOL; |
183 </body> |
63 $outstr .= ' });'.PHP_EOL; |
184 </html> |
64 $outstr .= ' </script>'.PHP_EOL; |
|
65 $outstr .= ' </head>'.PHP_EOL; |
|
66 $outstr .= ' <body class="default">'.PHP_EOL; |
|
67 $outstr .= ' <div id="jqxWidget">'.PHP_EOL; |
|
68 $outstr .= ' <div id="header">'.PHP_EOL; |
|
69 $outstr .= ' <div id="title">BMS '.$my_version.'</div>'.PHP_EOL; |
|
70 $outstr .= ' </div> <!-- header -->'.PHP_EOL; |
|
71 $outstr .= ' <div id="splitter">'.PHP_EOL; |
|
72 $outstr .= ' <div> <!-- tree panel -->'.PHP_EOL; |
|
73 $outstr .= ' <div style="visibility: hidden; border: none;" id=\'jqxTree\'>'.PHP_EOL; |
|
74 $outstr .= ' <ul>'.PHP_EOL; |
|
75 $outstr .= ' <li id="Root" item-expanded=\'true\'>'.PHP_EOL; |
|
76 $outstr .= ' <img style=\'float: left; margin-right: 5px;\' src=\'images/earth.png\' />'.PHP_EOL; |
|
77 $outstr .= ' <span item-title="true">Root</span>'.PHP_EOL; |
|
78 $outstr .= ' <ul>'.PHP_EOL; |
|
79 $outstr .= ' <li id="Nodes">'.PHP_EOL; |
|
80 $outstr .= ' <img style=\'float: left; margin-right: 5px;\' src=\'images/folder.png\' />'.PHP_EOL; |
|
81 $outstr .= ' <span item-title="true">Systemen</span>'.PHP_EOL; |
|
82 // Subtree nodes |
|
83 $outstr .= ' </li>'.PHP_EOL; |
|
84 $outstr .= ' <li id="Fermenters">'.PHP_EOL; |
|
85 $outstr .= ' <img style=\'float: left; margin-right: 5px;\' src=\'images/folder.png\' />'.PHP_EOL; |
|
86 $outstr .= ' <span item-title="true">Klimatkasten</span>'.PHP_EOL; |
|
87 // Subtree fermenters |
|
88 $outstr .= ' </li>'.PHP_EOL; |
|
89 $outstr .= ' <li id="Brewboards">'.PHP_EOL; |
|
90 $outstr .= ' <img style=\'float: left; margin-right: 5px;\' src=\'images/settings.png\' />'.PHP_EOL; |
|
91 $outstr .= ' <span item-title="true">Brouw apparatuur</span>'.PHP_EOL; |
|
92 $outstr .= ' </li>'.PHP_EOL; |
|
93 // TODO: Subtree brewboards |
|
94 $outstr .= ' <li id="Prducing">'.PHP_EOL; |
|
95 $outstr .= ' <img style=\'float: left; margin-right: 5px;\' src=\'images/system.png\' />'.PHP_EOL; |
|
96 $outstr .= ' <span item-title="true">In productie</span>'.PHP_EOL; |
|
97 $outstr .= ' </li>'.PHP_EOL; |
|
98 // TODO: Subtree production |
|
99 $outstr .= ' <li id="Recipes">'.PHP_EOL; |
|
100 $outstr .= ' <img style=\'float: left; margin-right: 5px;\' src=\'images/beer.png\' />'.PHP_EOL; |
|
101 $outstr .= ' <span item-title="true">Recepten</span>'.PHP_EOL; |
|
102 $outstr .= ' </li>'.PHP_EOL; |
|
103 // TODO: Subtree recipes. Verdelem in A B C D O ? |
|
104 $outstr .= ' <li id="Settings">'.PHP_EOL; |
|
105 $outstr .= ' <img style=\'float: left; margin-right: 5px;\' src=\'images/setupIcon.png\' />'.PHP_EOL; |
|
106 $outstr .= ' <span item-title="true">Instellingen</span>'.PHP_EOL; |
|
107 $outstr .= ' </li>'.PHP_EOL; |
|
108 $outstr .= ' </ul>'.PHP_EOL; |
|
109 $outstr .= ' </li>'.PHP_EOL; |
|
110 $outstr .= ' </ul>'.PHP_EOL; |
|
111 $outstr .= ' </div> <!-- jqxTree -->'.PHP_EOL; |
|
112 $outstr .= ' </div> <!-- tree panel -->'.PHP_EOL; |
|
113 $outstr .= ' <div id="ContentPanel">'.PHP_EOL; |
|
114 $outstr .= ' </div>'.PHP_EOL; |
|
115 $outstr .= ' </div> <!--- splitter -->'.PHP_EOL; |
|
116 $outstr .= ' </div> <!-- jqxWidget -->'.PHP_EOL; |
|
117 $outstr .= ' </body>'.PHP_EOL; |
|
118 $outstr .= '</html>'.PHP_EOL; |
|
119 |
|
120 echo $outstr; |
|
121 ?> |
|