소스 검색

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 7 년 전
부모
커밋
f2a52c285c
1개의 변경된 파일13개의 추가작업 그리고 2개의 파일을 삭제
  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)