diff options
| author | Étienne Loks <etienne.loks@peacefrogs.net> | 2012-08-26 20:32:35 +0200 |
|---|---|---|
| committer | Étienne Loks <etienne.loks@peacefrogs.net> | 2012-08-26 20:32:35 +0200 |
| commit | 5c11b86e4872b4043f2b1ea69c4b302fc9bfaccf (patch) | |
| tree | 5842489a1ac4bbc96179b9da3f0f8ef3b105ce11 | |
| parent | cd209d830cb8953d4c351791df73bf64f4225ea0 (diff) | |
| download | Chimère-5c11b86e4872b4043f2b1ea69c4b302fc9bfaccf.tar.bz2 Chimère-5c11b86e4872b4043f2b1ea69c4b302fc9bfaccf.zip | |
JS: Fix map pan when clicking on a popup
| -rw-r--r-- | chimere/static/chimere/js/jquery.chimere.js | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/chimere/static/chimere/js/jquery.chimere.js b/chimere/static/chimere/js/jquery.chimere.js index ca664de..06b4812 100644 --- a/chimere/static/chimere/js/jquery.chimere.js +++ b/chimere/static/chimere/js/jquery.chimere.js @@ -457,14 +457,6 @@ OpenLayers.Layer.MapQuestOSM = OpenLayers.Class(OpenLayers.Layer.XYZ, { var marker = feature.createMarker(); /* manage markers events */ var _popup = function() { - if (settings.popupContentFull){ - var pixel = new OpenLayers.Pixel(0, 60); - var lonlat = map.getLonLatFromPixel(pixel); - lonlat.lon = settings.current_feature.lonlat.lon; - settings.map.setCenter(lonlat); - } else { - methods.center_on_feature(); - } /* show the popup */ if (settings.current_popup != null) { settings.current_popup.hide(); @@ -482,6 +474,17 @@ OpenLayers.Layer.MapQuestOSM = OpenLayers.Class(OpenLayers.Layer.XYZ, { } settings.permalink.updateLink(); } + var _repan_popup = function(){ + /* re-pan manually */ + + // no clean way to detect if all the element are ready + // lack of better... + setTimeout( + function(){ + settings.current_popup.panIntoView(); + }, 1000); + } + var markerClick = function (evt) { settings.current_feature = feature; settings.current_position = feature.lonlat; @@ -490,6 +493,7 @@ OpenLayers.Layer.MapQuestOSM = OpenLayers.Class(OpenLayers.Layer.XYZ, { } else { + methods.center_on_feature(); $('#chimere_map_menu').hide(); // Default popup if (feature.popup && feature.popup.visible()) { @@ -502,10 +506,12 @@ OpenLayers.Layer.MapQuestOSM = OpenLayers.Class(OpenLayers.Layer.XYZ, { settings.current_popup.hide(); _popup(); methods.display_feature_detail(feature.pk); + _repan_popup(); } } else { _popup(); methods.display_feature_detail(feature.pk); + _repan_popup(); } } OpenLayers.Event.stop(evt); |
