www/includes/global.inc.php

changeset 676
09b5efe0c633
parent 675
825210ba2707
child 678
cc49115e769e
--- a/www/includes/global.inc.php	Sat Apr 13 16:50:26 2024 +0200
+++ b/www/includes/global.inc.php	Sun Apr 14 12:46:02 2024 +0200
@@ -24,25 +24,72 @@
 /*
  * Look for the style names in the jqwidgets/styles directory.
  */
-$my_style = 'ui-redmond';
-//$my_style = 'ui-mbse';
+//$my_style = 'ui-redmond';
+$my_style = 'ui-mbse';
 
 require_once($_SERVER['DOCUMENT_ROOT'].'/version.php');
 
 
+function open_socket()
+{
+    $sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
+
+    if (!($sock === false)) {
+        if (socket_connect($sock, "localhost", 6554)) {
+            socket_set_option($sock, SOL_SOCKET, SO_RCVTIMEO, array('sec' => 15, 'usec' => 0));
+        } else {
+            socket_close($sock);
+        }
+    }
+    return $sock;
+}
+
+
+/**
+ * @param string $command to send to the server.
+ * @return string with the complete reply from the
+ *         server. This can be a multiline reply.
+ */
+function send_cmd($command)
+{
+    $sock = open_socket();
+    if ($sock == false) {
+        return "";
+    }
+    socket_write($sock, $command . "\r\n", 4096);
+
+    $answer = "";
+    while (1) {
+        $line = socket_read($sock, 4096);
+        if ($line === '')
+            break;
+        $answer .= $line;
+    }
+    socket_close($sock);
+
+    return $answer;
+}
+
+
+function startsWith($haystack, $needle)
+{
+    return !strncmp($haystack, $needle, strlen($needle));
+}
+
+
 function page_header($title, $loadjs) {
 	global $my_style;
 	global $my_version;
 ?>
 <!DOCTYPE html>
-<html lang=en-US>
+<html>
  <head>
-  <meta http-equiv="content-type" content="text/html; charset=utf-8" />
+  <meta charset="utf-8">
   <title>ThermFerm v<?php echo $my_version;?> - <?php echo $title;?></title>
-<!--  <link type="text/css" href="css/style.css" rel="stylesheet" media="all" /> -->
+  <link type="text/css" href="css/style.css" rel="stylesheet" media="all" />
   <link type="text/css" href="jqwidgets/styles/jqx.base.css" rel="stylesheet" />
   <link type="text/css" href="jqwidgets/styles/jqx.<?php echo $my_style; ?>.css" rel="stylesheet" />
-  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+  <meta name="viewport" content="width=device-width, initial-scale=1">
   <script>
     var theme = "<?php echo $my_style; ?>";
   </script>
@@ -72,6 +119,28 @@
    <div id="jqxMenu" style='float: left;'>
     <ul>
      <li style='width: 80px;'><a href="index.php">Home</a></li>
+     <li style='width: 80px;'>Fermenters
+      <ul style='width: 200px;'>
+<?php
+    $answer = send_cmd("LIST");
+    if (strlen($answer)) {
+	$arr = explode("\r\n", $answer);
+
+        if (startsWith($arr[0], "212")) {
+            $i = 1;
+	    while (1) {
+                if (strcmp($arr[$i], ".") == 0)
+                        break;
+		$parts = explode(",", $arr[$i]);
+		echo '       <li><img style="float: left; margin-right: 5px;" src="images/fridge.png" />';
+		echo '<a href="fermenter.php?uuid='.$parts[0].'">'.$parts[1].'</a></li>'.PHP_EOL;
+                $i++;
+            }
+        }
+    }
+?>
+      </ul>
+     </li>
      <li style='width: 80px;'>Setup
       <ul style='width: 200px;'>
        <li><img style='float: left; margin-right: 5px;' src='images/preferences.png' /><a href="set_global.php">Global</a></li>
@@ -79,6 +148,7 @@
        <li><img style='float: left; margin-right: 5px;' src='images/fermenter.png' /><a href="set_fermenters.php">Fermenters</a></li>
        <li><img style='float: left; margin-right: 5px;' src='images/computer.png' /><a href="set_simulators.php">Simulators</a></li>
       </ul>
+     </li>
      <li style='width: 80px;'><a href="gen_about.php">Over</a></li>
     </ul>
    </div> <!-- End menu -->

mercurial