]> rtime.felk.cvut.cz Git - coffee/coffee-flask.git/commitdiff
When replaying offline queue, use the original event time rather than now()
authorMichal <michal.sojka@cvut.cz>
Wed, 15 Aug 2018 10:14:06 +0000 (12:14 +0200)
committerMichal Sojka <michal.sojka@cvut.cz>
Thu, 16 Aug 2018 21:09:52 +0000 (23:09 +0200)
This way, coffees will be logged with correct time independently of
online/offline mode.

templates/main.js

index b90e9cb901e1f1f775269c6382904699776ffbbd..7f63cc52f8e41fc2adb54302eb81055ed9e306b6 100644 (file)
@@ -20,7 +20,7 @@ function replayOfflineQueue() {
         let queue = JSON.parse(localStorage.getItem("offlineQueue")) || [];
         if (Array.isArray(queue)) {
             queue.forEach(function (entry) {
-                updateRemote(entry.data);
+                updateRemote(entry.data, new Date(entry.time));
             });
             localStorage.removeItem("offlineQueue");
         }
@@ -59,7 +59,7 @@ function updateUI()
     }
 }
 
-function hiddenUpdateRemote(json) {
+function hiddenUpdateRemote(json, time = new Date()) {
     var msg = JSON.parse(json);
 
     switch(msg.type) {
@@ -71,7 +71,7 @@ function hiddenUpdateRemote(json) {
         case "keys":
             var flavor = getFlavor(msg.key);
             if (flavor !== "") {
-                addCoffee(flavor);
+                addCoffee(flavor, time);
             }
             break;
         case "ajax_failure":
@@ -183,9 +183,9 @@ function getFlavor(letter) {
     }
 }
 
-function addCoffee(flavor) {
+function addCoffee(flavor, time = new Date()) {
     var data = JSON.stringify({
-        time: new Date().toISOString(),
+        time: time.toISOString(),
         flavor: flavor,
         uid: id_user
     });