forcegraph: test for localStorage before using it
This commit is contained in:
parent
eb315ab60a
commit
aa237c2380
11
helper.js
11
helper.js
|
@ -62,6 +62,17 @@ function dictGet(dict, key) {
|
|||
return dictGet(dict[k], key)
|
||||
}
|
||||
|
||||
function localStorageTest() {
|
||||
var test = 'test'
|
||||
try {
|
||||
localStorage.setItem(test, test)
|
||||
localStorage.removeItem(test)
|
||||
return true
|
||||
} catch(e) {
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
/* Helpers working with nodes */
|
||||
|
||||
function offline(d) {
|
||||
|
|
|
@ -12,6 +12,9 @@ define(["d3"], function (d3) {
|
|||
var LINK_DISTANCE = 70
|
||||
|
||||
function savePositions() {
|
||||
if (!localStorageTest())
|
||||
return
|
||||
|
||||
var save = nodes.map( function (d) {
|
||||
return { id: d.id, x: d.x, y: d.y }
|
||||
})
|
||||
|
@ -140,13 +143,16 @@ define(["d3"], function (d3) {
|
|||
window.addEventListener("resize", resize)
|
||||
|
||||
self.setData = function (data) {
|
||||
var save = JSON.parse(localStorage.getItem("graph/nodeposition"))
|
||||
var nodePositions = {}
|
||||
|
||||
if (save)
|
||||
save.forEach( function (d) {
|
||||
nodePositions[d.id] = d
|
||||
})
|
||||
if (localStorageTest()) {
|
||||
var save = JSON.parse(localStorage.getItem("graph/nodeposition"))
|
||||
|
||||
if (save)
|
||||
save.forEach( function (d) {
|
||||
nodePositions[d.id] = d
|
||||
})
|
||||
}
|
||||
|
||||
links = data.graph.links.filter( function (d) {
|
||||
return !d.vpn
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
"has_location": false,
|
||||
"limit": false,
|
||||
"linkId": false,
|
||||
"localStorageTest": false,
|
||||
"offline": false,
|
||||
"one": false,
|
||||
"online": false,
|
||||
|
|
Loading…
Reference in a new issue