summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
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
commitf600a6e722d097ad4f9ba31fd49f8e84fc8ea23c (patch)
tree21da4ddc4c95cab67531c7668bf7a1778c2b8cda
parent0092d11e1cdc68dc698c3d5cedb9c6e89995342a (diff)
downloadChimère-f600a6e722d097ad4f9ba31fd49f8e84fc8ea23c.tar.bz2
Chimère-f600a6e722d097ad4f9ba31fd49f8e84fc8ea23c.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.js12
-rw-r--r--chimere/templates/chimere/blocks/map.html5
-rw-r--r--chimere/templatetags/chimere_tags.py1
-rw-r--r--chimere/views.py7
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':'',