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 New Issue
	
	Block a user