]> git.datanom.net - qtadmin.git/blobdiff - js/timer.js
Fix bug in session handler
[qtadmin.git] / js / timer.js
index a7e9c1d4f52a4d8e857ac0a4f6c5aa8c737554ae..f68f0841f11d279fd19defce6ff5ccd026569796 100644 (file)
@@ -1,20 +1,32 @@
-/* vim: set ts=4 tw=0 sw=4 noet: */
-var timerRef=setInterval(function(){myTimer()},1000);
+/* vim: set ts=4 tw=4 sw=4 noet: */
+var timerRef=setInterval(function(){myTimer()}, 1000);
 var timeStart = new Date().getTime() + timeout;
+var last = -1;
 
 function myTimer() {
-       var elapsed = new Date().getTime();
-       var expire = timeStart - elapsed;
-       var timeLeft = Math.round(((expire % 86400000) % 3600000) / 60000);
+    var elapsed = new Date().getTime();
+    var expire = timeStart - elapsed;
+    var timeLeft = Math.round(((expire % 86400000) % 3600000) / 60000);
 
-       if (timeLeft < 0) {
-               timeLeft = 'Expired';
-               document.getElementById("time").style.background = "red";
-               clearInterval(timerRef);
-       } else {
-               timeLeft += 1;
-               timeLeft = '< ' + timeLeft + ' min';
-       }
-
-    document.getElementById("timer").innerHTML = timeLeft;
+    if (timeLeft < 0) {
+        clearInterval(timerRef);
+        console.log('Session expired, reload page');
+        last = -1;
+        location.reload();
+    } else if (timeLeft == 1) {
+        if (timeLeft < last || last == -1) {
+            last = timeLeft;
+            timeLeft = '< ' + timeLeft + ' min';
+            console.log('Session soon to expire');
+            document.getElementById("time").style.background = "red";
+            document.getElementById("timer").innerHTML = timeLeft;
+        }
+    } else {
+        if ((timeLeft < last && timeLeft > 0) || last == -1) {
+            last = timeLeft;
+            console.log('Session valid < ' + timeLeft);
+            timeLeft = '< ' + timeLeft + ' min';
+            document.getElementById("timer").innerHTML = timeLeft;
+        }
+    }
 }
This page took 0.030231 seconds and 5 git commands to generate.