diff options
author | Étienne Loks <etienne.loks@peacefrogs.net> | 2013-02-02 00:20:42 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@peacefrogs.net> | 2013-02-02 00:20:42 +0100 |
commit | f600a6e722d097ad4f9ba31fd49f8e84fc8ea23c (patch) | |
tree | 21da4ddc4c95cab67531c7668bf7a1778c2b8cda | |
parent | 0092d11e1cdc68dc698c3d5cedb9c6e89995342a (diff) | |
download | Chimère-2.0-RC6.tar.bz2 Chimère-2.0-RC6.zip |
JS: when the marker selected is associated to a route zoom to its extentv2.0-RC6
-rw-r--r-- | chimere/static/chimere/js/jquery.chimere.js | 12 | ||||
-rw-r--r-- | chimere/templates/chimere/blocks/map.html | 5 | ||||
-rw-r--r-- | chimere/templatetags/chimere_tags.py | 1 | ||||
-rw-r--r-- | chimere/views.py | 7 |
4 files changed, 21 insertions, 4 deletions
diff --git a/chimere/static/chimere/js/jquery.chimere.js b/chimere/static/chimere/js/jquery.chimere.js index 3168c24..2c8bb97 100644 --- a/chimere/static/chimere/js/jquery.chimere.js +++ b/chimere/static/chimere/js/jquery.chimere.js @@ -61,6 +61,7 @@ OpenLayers.Layer.MapQuestOSM = OpenLayers.Class(OpenLayers.Layer.XYZ, { dynamic_categories: false, display_submited: false, display_feature: null, + display_route: null, area_id: null, checked_categories: [], zoom: null, @@ -433,8 +434,10 @@ OpenLayers.Layer.MapQuestOSM = OpenLayers.Class(OpenLayers.Layer.XYZ, { if (settings.display_feature == feature.pk){ _popup(feature); methods.display_feature_detail(feature.pk); - settings.map.setCenter(feature.lonlat, 16); - methods.loadCategories(); + if (!settings.display_route){ + settings.map.setCenter(feature.lonlat, 16); + methods.loadCategories(); + } } return feature; }, @@ -461,6 +464,11 @@ OpenLayers.Layer.MapQuestOSM = OpenLayers.Class(OpenLayers.Layer.XYZ, { settings.current_feature.style = style; settings.current_feature.geometry = linestring; settings.layerVectors.addFeatures([settings.current_feature]); + if (settings.display_route && settings.display_route == route.properties.pk){ + var dataExtent = settings.current_feature.geometry.getBounds(); + map.zoomToExtent(dataExtent, closest=true); + methods.loadCategories(); + } }, display_feature_detail: function (pk) { /* diff --git a/chimere/templates/chimere/blocks/map.html b/chimere/templates/chimere/blocks/map.html index 886c50b..9788528 100644 --- a/chimere/templates/chimere/blocks/map.html +++ b/chimere/templates/chimere/blocks/map.html @@ -31,8 +31,9 @@ chimere_init_options["checked_categories"] = {{ p_checked_categories }}; {% if area_id %}chimere_init_options['area_id'] = "{{area_id}}";{% endif %} {% if p_current_feature %} - chimere_init_options["display_feature"] = {{ p_current_feature }}; - {% endif %} + chimere_init_options["display_feature"] = {{ p_current_feature }};{% endif %} + {% if p_current_route %} + chimere_init_options["display_route"] = {{ p_current_route }};{% endif %} {% if restricted_extent %}{{ restricted_extent }} chimere_init_options["restricted_extent"] = bounds; {% endif %} diff --git a/chimere/templatetags/chimere_tags.py b/chimere/templatetags/chimere_tags.py index 0182b66..0490c2d 100644 --- a/chimere/templatetags/chimere_tags.py +++ b/chimere/templatetags/chimere_tags.py @@ -185,6 +185,7 @@ bounds.extend(new OpenLayers.LonLat(%f, %f)); return context_data request = context['request'] # Default values + context_data['p_current_route'] = context.get('current_route') if request.GET: for key in ('zoom', 'lon', 'lat', 'display_submited', 'current_feature'): diff --git a/chimere/views.py b/chimere/views.py index b49da6e..22bd50a 100644 --- a/chimere/views.py +++ b/chimere/views.py @@ -123,6 +123,13 @@ def index(request, area_name=None, default_area=None, simple=False): if request.GET and 'lat' in request.GET \ and 'lon' in request.GET: zoomout = None + if request.GET and 'current_feature' in request.GET: + try: + m = Marker.objects.get(pk=request.GET['current_feature']) + if m.route: + response_dct['current_route'] = m.route.pk + except: + pass response_dct.update({ 'actions':actions, 'action_selected':('view',), 'error_message':'', |