]> rtime.felk.cvut.cz Git - coffee/mt-apps.git/blobdiff - html/index.html
Store offline data in an array rather than in a hash
[coffee/mt-apps.git] / html / index.html
index ad6ec0a32cc916feb143c82d67e0fd65d2a83b6f..49a1f9301a2bbe48e9e9f88d9e55529f8f8108a0 100644 (file)
@@ -1,15 +1,17 @@
 <!doctype html>
 <html>
+<head>
+<meta charset="utf-8"/>
 <title>IID Coffee Terminal</title>
 <script>
     function loadServerScript() {
-       let script = document.createElement('script');
-       script.src = "//localhost:5000/js";
-       document.head.append(script);
-       script.onerror = function() {
-           this.parentElement.removeChild(this);
-           setTimeout(loadServerScript, 10000);
-       };
+        let script = document.createElement('script');
+        script.src = "http://localhost:5000/js";
+        document.head.append(script);
+        script.onerror = function() {
+            this.parentElement.removeChild(this);
+            setTimeout(loadServerScript, 10000);
+        };
     }
 
     loadServerScript();
 
     function connect() {
         console.log("connecting...");
-       socket = new WebSocket(
+        socket = new WebSocket(
             "ws://" + document.domain + ':' + location.port,
             "merica-terminal-protocol"
-       );
+        );
 
-       socket.onopen = function() {
+        socket.onopen = function() {
             console.log("socket open");
             document.getElementById("inputStatus").innerHTML = "connected";
-       }
+        }
 
-       socket.onclose = function() {
+        socket.onclose = function() {
             console.log("socket closed");
             document.getElementById("inputStatus").innerHTML = "disconnected";
-           delete socket;
-           setTimeout(connect, 10000);
-       }
+            delete socket;
+            setTimeout(connect, 10000);
+        }
 
-       socket.onmessage = function(msg) {
+        socket.onmessage = function(msg) {
             updateJSONmsg(msg.data);
             if (typeof updateRemote === "function") {
-               updateRemote(msg.data);
+                updateRemote(msg.data);
             } else {
-               if (localStorage) {
-                    var now = Date.now();
-                    localStorage.setItem(now, msg.data);
-                    console.log(now + ": " + msg.data);
-               }
+                if (localStorage) {
+                    let queue = JSON.parse(localStorage.getItem("offlineQueue")) || [];
+                    queue.push({ time: Date.now(), data: msg.data });
+                    try {
+                        localStorage.setItem("offlineQueue", JSON.stringify(queue));
+                    }
+                   catch (err) {
+                       console.log(err);
+                   }
+                }
             }
-       }
+        }
     }
 
     connect();
@@ -87,7 +94,7 @@
         console.log("close");
     }
 </script>
-
+</head>
 <body>
     <center>
     <h1>IID Coffee Terminal</h1>