From 55506b7207711429c87b40060ec5cbc2eec8a9fb Mon Sep 17 00:00:00 2001 From: Xelio Date: Sat, 16 Feb 2013 21:33:29 +0800 Subject: [PATCH 1/2] Bug fix: selected portal unselect if portal re-render Preserve and restore "selectedPortal" between re-render --- code/map_data.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/code/map_data.js b/code/map_data.js index 468da61a..0c32015e 100644 --- a/code/map_data.js +++ b/code/map_data.js @@ -125,7 +125,11 @@ window.handleDataResponse = function(data, textStatus, jqXHR) { } }); + // Preserve and restore "selectedPortal" between portal re-render + if(portalUpdateAvailable) var oldSelectedPortal = selectedPortal; $.each(ppp, function(ind, portal) { renderPortal(portal); }); + if(portalUpdateAvailable) selectedPortal = oldSelectedPortal; + if(portals[selectedPortal]) { try { portals[selectedPortal].bringToFront(); From fd7940c2ae18dd10c9b07f12ddf2f3ed15279904 Mon Sep 17 00:00:00 2001 From: Xelio Date: Sat, 16 Feb 2013 22:38:43 +0800 Subject: [PATCH 2/2] Bug Fix: selected portal unselect if portal re-render Add a checking: if portal is not visible on map, don't preserve "selectedPortal" --- code/map_data.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/code/map_data.js b/code/map_data.js index 0c32015e..dcd4b71e 100644 --- a/code/map_data.js +++ b/code/map_data.js @@ -128,11 +128,13 @@ window.handleDataResponse = function(data, textStatus, jqXHR) { // Preserve and restore "selectedPortal" between portal re-render if(portalUpdateAvailable) var oldSelectedPortal = selectedPortal; $.each(ppp, function(ind, portal) { renderPortal(portal); }); - if(portalUpdateAvailable) selectedPortal = oldSelectedPortal; - if(portals[selectedPortal]) { + var selectedPortalLayer = portals[oldSelectedPortal]; + if(portalUpdateAvailable && selectedPortalLayer) selectedPortal = oldSelectedPortal; + + if(selectedPortalLayer) { try { - portals[selectedPortal].bringToFront(); + selectedPortalLayer.bringToFront(); } catch(e) { /* portal is now visible, catch Leaflet error */ } }