Procházet zdrojové kódy

fix error in statuspage if cookies are disabled (#912)

If cookies are disabled, the Statuspage only displays an empty ("Not connected")
This checks if the localStorage API is available and working and only uses it in this case
Also allows better backwards compatibility.
Brother-Lal před 7 roky
rodič
revize
f2a52c285c
1 změnil soubory, kde provedl 13 přidání a 2 odebrání
  1. 13 2
      package/gluon-status-page/src/js/main.js

+ 13 - 2
package/gluon-status-page/src/js/main.js

@@ -83,7 +83,17 @@ require([ "bacon"
     return a
   }
 
-  if (localStorage.nodes)
+  var lsavailable = false
+  try {
+    localStorage.setItem("t", "t")
+    localStorage.removeItem("t")
+    lsavailable = true
+  } catch(e) {
+    lsavailable = false
+  }
+
+
+  if ( lsavailable && localStorage.nodes)
     JSON.parse(localStorage.nodes).forEach(nodesBusIn.push)
 
   nodesBus.map(".nodes").onValue(function (nodes) {
@@ -92,7 +102,8 @@ require([ "bacon"
     for (var k in nodes)
       out.push(nodes[k])
 
-    localStorage.nodes = JSON.stringify(out)
+    if (lsavailable)
+      localStorage.nodes = JSON.stringify(out)
   })
 
   var bootstrap = Helper.getJSON(bootstrapUrl)