]> rtime.felk.cvut.cz Git - coffee/coffee-flask.git/blobdiff - templates/main.js
Save id user local for add coffee
[coffee/coffee-flask.git] / templates / main.js
index f945b292cd14f4b767c725c9ae5bd4632f46ce93..6d4fc866b457a117869e8079c8feb0d08007ba03 100644 (file)
@@ -6,6 +6,7 @@ var updateRemote = undefined;   // defined iff remote server accessible
 var loggedIn = false;           // true after swiping the cards
 var timeToLogout = undefined;   // defined during logout countdown
 var logoutTimer;
+var reloadTimer = undefined;
 
 console.log("hello from flask");
 //sendJSON("{\"type\":\"empty\"}");
@@ -17,15 +18,22 @@ function update(id, msg) {
 function loadLocalStorage() {
     if (localStorage) {
         if (localStorage.length) {
+            var entries = [];
             for (var i = 0; i < localStorage.length; i++) {
                 var value = localStorage.getItem(localStorage.key(i));
                 try {
-                    updateRemote(value);
+                    var key = localStorage.key(i);
+                    var value = localStorage.getItem(key);
+                    entries.push({ key: key, value: value });
                 } catch (err) {
                     console.log("no json: " + value)
                 }
             }
             localStorage.clear();
+            entries.sort((entry1, entry2) => { return entry1.key > entry2.key;});
+            for (var i = 0; i < entries.length; i++) {
+                updateRemote(entries[i].value);
+            }
         }
     }
 }
@@ -40,6 +48,7 @@ function updateUI()
     if (updateRemote === undefined) {
         update("remote", "<center>Server offline...</center>");
         document.getElementById("local").style.display = "block";
+        loadRemote();
     } else {
         document.getElementById("local").style.display = "none";
 
@@ -50,10 +59,12 @@ function updateUI()
         }
 
         if (timeToLogout !== undefined)
-            document.getElementById("logout_button").value = '\nlogout\n(' + timeToLogout + ' s)';
+            document.getElementById("logout_button").innerHTML = '<br>logout<br>(' + timeToLogout + ' s)';
     }
 }
 
+var id_user;
+
 function hiddenUpdateRemote(json) {
     var msg = JSON.parse(json);
 
@@ -71,6 +82,7 @@ function hiddenUpdateRemote(json) {
                 "sak: " + msg.sak
             );*/
             login(msg.uid);
+            id_user=msg.uid;
             break;
         case "keys":
             //update("json", "key: " + msg.key);
@@ -89,11 +101,16 @@ function hiddenUpdateRemote(json) {
 function loadRemote(string) {
     var xhr = new XMLHttpRequest();
     xhr.onreadystatechange = function() {
-        if (this.readyState == 4 && this.status == 200) {
-            update("remote", this.responseText);
-            updateRemote = hiddenUpdateRemote;
-            loadLocalStorage();
-            updateUI();
+        if (this.readyState == 4) {
+            if (this.status == 200) {
+                update("remote", this.responseText);
+                updateRemote = hiddenUpdateRemote;
+                loadLocalStorage();
+                updateUI();
+                clearTimeout(reloadTimer);
+            } else {
+                reloadTimer = setTimeout(loadRemote, 1000);
+            }
         }
     };
     xhr.open("GET", flask, true);
@@ -181,7 +198,8 @@ function getFlavor(letter) {
 function addCoffee(flavor) {
     var data = JSON.stringify({
         time: new Date().toISOString(),
-        flavor: flavor
+        flavor: flavor,
+        uid: id_user
     });
     if (loggedIn) {
         ajax("POST", "coffee/add", data, "user");