Parcourir la source

Refactor end of expe redirection

rigwild il y a 4 ans
Parent
commit
98f863a4fb
3 fichiers modifiés avec 19 ajouts et 30 suppressions
  1. 3 5
      expe/templates/base.html
  2. 1 1
      static/js/keyEvents.js
  3. 15 24
      static/js/loadImg.js

+ 3 - 5
expe/templates/base.html

@@ -34,16 +34,14 @@
         const host     = window.location.host
         var baseUrl    = location.protocol + '//' + host + '/'
 
-        if (BASE != ''){
-            baseUrl += BASE + '/'
-        }
+        if (BASE !== '') baseUrl += BASE + '/'
 
         const expeUrl  = baseUrl + 'expe'  
 
         // EXPE variables parts
         // get access to django variables
-        var BEGIN_EXPE = "{{request.session.expe_started}}"
-        var END_EXPE   = "{{request.session.expe_finished}}"
+        var BEGIN_EXPE = "{{request.session.expe_started}}" === 'True'
+        var END_EXPE   = "{{request.session.expe_finished}}" === 'True'
     </script>
 
     <!-- Custom Javascript file for experience template is placed here -->

+ 1 - 1
static/js/keyEvents.js

@@ -50,7 +50,7 @@ const checkKey = e => {
          }
          
          // construct url with params for experience
-         const params = `?scene=${scene}&expe=${expe}&iteration${iteration}&answer=${answer}`
+         const params = `?scene=${scene}&expe=${expe}&iteration=${iteration}&answer=${answer}`
          window.location = expeUrl + params
       }
    }

+ 15 - 24
static/js/loadImg.js

@@ -1,28 +1,19 @@
-window.onload = function () {
-
-    console.log("End expe " + END_EXPE)
+const delay = ms => new Promise(res => setTimeout(res, ms))
 
+window.addEventListener('DOMContentLoaded', async () => {
+    console.log('End expe ' + END_EXPE)
+    
     // only if not end of expe
-    if (END_EXPE == "False"){
-        setTimeout(function(){ 
-            document.getElementById("expeImg").style.display = "inline";
-        }, 500);
+    if (!END_EXPE) {
+        await delay(500)
+        document.getElementById('expeImg').style.display = 'inline'
     }
-
-    // redirect if end of expe after 5 sec
-    if (END_EXPE == "True"){
-        
-        for(var i=0; i<6; i++){
-            ((x)=>{
-                setTimeout(()=> 
-                    document.getElementById("refreshTime").textContent = 5 - x
-                ,1000 * i)
-            })(i);
-        } 
-
-        setTimeout(function(){ 
-            // TODO : refresh to home app
-            window.location = baseUrl
-        }, 5000);
+    // redirect after 5s if end of expe
+    else if (END_EXPE) {
+        for (let i = 0; i <= 5; i++) {
+            document.getElementById('refreshTime').textContent = 5 - i
+            if (i <= 4) await delay(1000)
+        }
+        window.location = baseUrl
     }
-}
+})