diff options
| -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':'',  | 
