From 61d83567a6f0ca771761bf1975ef761e519d1ab1 Mon Sep 17 00:00:00 2001 From: Xelio Date: Thu, 2 May 2013 14:30:44 +0800 Subject: [PATCH 1/3] Add function for plugin to add layerGroup and persist display status between session --- code/utils_misc.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/code/utils_misc.js b/code/utils_misc.js index dede2f01..c42d50b3 100644 --- a/code/utils_misc.js +++ b/code/utils_misc.js @@ -372,3 +372,8 @@ window.isLayerGroupDisplayed = function(name) { if(typeof(overlayStatus[name]) === 'undefined') return true; return overlayStatus[name]; } + +window.addLayerGroup = function(name, layerGroup, defaultDisplay) { + if(isLayerGroupDisplayed(name) || defaultDisplay) map.addLayer(layerGroup); + layerChooser.addOverlay(layerGroup, name); +} From 50f4004ac5378c0353ce5046f4a8b40e2eee279e Mon Sep 17 00:00:00 2001 From: Xelio Date: Fri, 3 May 2013 13:10:25 +0800 Subject: [PATCH 2/3] Fix logic bug in addLayerGroup --- code/utils_misc.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/utils_misc.js b/code/utils_misc.js index c42d50b3..987cb81d 100644 --- a/code/utils_misc.js +++ b/code/utils_misc.js @@ -360,20 +360,20 @@ window.updateDisplayedLayerGroup = function(name, display) { // Read layerGroup status from window.overlayStatus if it was added to map, // read from cookie if it has not added to map yet. // return true if both overlayStatus and cookie didn't have the record -window.isLayerGroupDisplayed = function(name) { +window.isLayerGroupDisplayed = function(name, defaultDisplay) { if(typeof(overlayStatus[name]) !== 'undefined') return overlayStatus[name]; var layersJSON = readCookie('ingress.intelmap.layergroupdisplayed'); - if(!layersJSON) return true; + if(!layersJSON) return defaultDisplay; var layers = JSON.parse(layersJSON); // keep latest overlayStatus overlayStatus = $.extend(layers, overlayStatus); - if(typeof(overlayStatus[name]) === 'undefined') return true; + if(typeof(overlayStatus[name]) === 'undefined') return defaultDisplay; return overlayStatus[name]; } window.addLayerGroup = function(name, layerGroup, defaultDisplay) { - if(isLayerGroupDisplayed(name) || defaultDisplay) map.addLayer(layerGroup); + if(isLayerGroupDisplayed(name, defaultDisplay)) map.addLayer(layerGroup); layerChooser.addOverlay(layerGroup, name); } From 917a538a1143753b3f0bf3e3746106b4a1ae475d Mon Sep 17 00:00:00 2001 From: Xelio Date: Fri, 3 May 2013 13:14:13 +0800 Subject: [PATCH 3/3] Fix comment --- code/utils_misc.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/utils_misc.js b/code/utils_misc.js index 987cb81d..dc9c6a6f 100644 --- a/code/utils_misc.js +++ b/code/utils_misc.js @@ -359,7 +359,7 @@ window.updateDisplayedLayerGroup = function(name, display) { // Read layerGroup status from window.overlayStatus if it was added to map, // read from cookie if it has not added to map yet. -// return true if both overlayStatus and cookie didn't have the record +// return 'defaultDisplay' if both overlayStatus and cookie didn't have the record window.isLayerGroupDisplayed = function(name, defaultDisplay) { if(typeof(overlayStatus[name]) !== 'undefined') return overlayStatus[name];