diff options
| author | Étienne Loks <etienne.loks@peacefrogs.net> | 2013-08-08 20:16:40 +0200 |
|---|---|---|
| committer | Étienne Loks <etienne.loks@peacefrogs.net> | 2013-08-08 20:16:40 +0200 |
| commit | bfc5f255441685871f3de56cdede9448288cc7cc (patch) | |
| tree | bce1e4fe5dc5bfa9903608e37bb61a56b20ba5f9 | |
| parent | 4cb7d312d9f17a722207624c0f0977b43b5416d2 (diff) | |
| download | Chimère-bfc5f255441685871f3de56cdede9448288cc7cc.tar.bz2 Chimère-bfc5f255441685871f3de56cdede9448288cc7cc.zip | |
Configure Nominatim widget for edit page
| -rw-r--r-- | chimere/static/chimere/css/styles.css | 5 | ||||
| -rw-r--r-- | chimere/static/chimere/js/jquery.chimere-ol.js | 12 | ||||
| -rw-r--r-- | chimere/static/chimere/js/nominatim-widget.js | 7 | ||||
| -rw-r--r-- | chimere/templates/chimere/blocks/live_coordinates.html | 4 | ||||
| -rw-r--r-- | chimere/templates/chimere/blocks/nominatim_widget.html | 6 | ||||
| -rw-r--r-- | chimere/templates/chimere/edit.html | 3 | ||||
| -rw-r--r-- | chimere/views.py | 5 | ||||
| -rw-r--r-- | chimere/widgets.py | 5 |
8 files changed, 36 insertions, 11 deletions
diff --git a/chimere/static/chimere/css/styles.css b/chimere/static/chimere/css/styles.css index 22138ae..0f17640 100644 --- a/chimere/static/chimere/css/styles.css +++ b/chimere/static/chimere/css/styles.css @@ -31,6 +31,7 @@ h2, h3, th, .action li, .action li a, color:#aaa; } +.nominatim-search, #chimere_total_label td.l{ color:#000; } @@ -611,6 +612,10 @@ ul.share li{ font-style:italic; } +.nominatim-search{ + font-style:normal; +} + .simple #panel{ top:5px; bottom:auto; diff --git a/chimere/static/chimere/js/jquery.chimere-ol.js b/chimere/static/chimere/js/jquery.chimere-ol.js index ff07132..98fbb48 100644 --- a/chimere/static/chimere/js/jquery.chimere-ol.js +++ b/chimere/static/chimere/js/jquery.chimere-ol.js @@ -987,6 +987,18 @@ if (typeof(OpenLayers) != 'undefined'){ settings.map.getProjectionObject()); settings.layerVectors.addFeatures(feats); }, + pointInputChange: function(nominatim_id){ + methods.putEditMarker(new OpenLayers.LonLat( + $('#'+nominatim_id+'_lon').val(), + $('#'+nominatim_id+'_lat').val() + ).transform(EPSG_DISPLAY_PROJECTION, + settings.map.getProjectionObject()), false); + var bounds = settings.layerMarkers.getDataExtent(); + if (bounds) { + settings.map.zoomToExtent(bounds); + settings.map.zoomTo(13); + } + }, routingInputChange: function(nominatim_id){ $('#map_menu_clear').show(); switch(nominatim_id){ diff --git a/chimere/static/chimere/js/nominatim-widget.js b/chimere/static/chimere/js/nominatim-widget.js index 99f7034..d61443f 100644 --- a/chimere/static/chimere/js/nominatim-widget.js +++ b/chimere/static/chimere/js/nominatim-widget.js @@ -1,4 +1,5 @@ var default_nominatim_lbl = ''; +var routing = false; var nominatim_widget_options = { source: function (request, response) { $.ajax({ @@ -30,7 +31,11 @@ var nominatim_widget_options = { $('#chimere_'+$(this).attr('id').substring(10)+'_label').html( ui.item.label); $('#'+$(this).attr('id')).val(default_nominatim_lbl); - jQuery("#map").chimere("routingInputChange", $(this).attr('id')); + if (routing){ + jQuery("#"+chimere_init_options['map_id']).chimere("routingInputChange", $(this).attr('id')); + } else { + jQuery("#"+chimere_init_options['map_id']).chimere("pointInputChange", $(this).attr('id')); + } return false; }, open: function() { diff --git a/chimere/templates/chimere/blocks/live_coordinates.html b/chimere/templates/chimere/blocks/live_coordinates.html index 4392dca..3ce34bf 100644 --- a/chimere/templates/chimere/blocks/live_coordinates.html +++ b/chimere/templates/chimere/blocks/live_coordinates.html @@ -15,9 +15,6 @@ if({{default_map}}) chimere_init_options['selected_map_layer'] = {{default_map}}; </script> -</div> - - <div id='map_edit'></div> <div id='live_lonlat'> <p> @@ -29,6 +26,7 @@ <input type='texte' name='live_longitude' id='live_longitude' size='8' adisabled='true' value='{{value_x|stringformat:"f"}}'/> </p> <input type='hidden' name='{{name}}' id='id_{{name}}' value='{{val}}'/> +</div> <script type="text/javascript"> $('#map_edit').chimere(chimere_init_options); diff --git a/chimere/templates/chimere/blocks/nominatim_widget.html b/chimere/templates/chimere/blocks/nominatim_widget.html index 442ffed..2971e60 100644 --- a/chimere/templates/chimere/blocks/nominatim_widget.html +++ b/chimere/templates/chimere/blocks/nominatim_widget.html @@ -1,9 +1,13 @@ +{% load i18n %} +<div class='nominatim-widget'> <input type='hidden' name='nominatim_{{id}}_lat' id='nominatim_{{id}}_lat'/> <input type='hidden' name='nominatim_{{id}}_lon' id='nominatim_{{id}}_lon'/> +<label for='nominatim_{{id}}' class='nominatim-search'>{% trans "Search:"%}</label> <input type='text' class='nominatim-widget' name='nominatim_{{id}}' id='nominatim_{{id}}' value=""/> <label class='nominatim-label' id='nominatim_{{id}}_label'> </label> +</div> <script type='text/javascript'> -var default_nominatim_lbl = "{{label}}"; +var default_nominatim_lbl = "{% trans 'Street, City, Country'%}"; var nominatim_url = "{{nominatim_url}}"; $("#nominatim_{{id}}").val(default_nominatim_lbl); $("#nominatim_{{id}}").click(function(){ diff --git a/chimere/templates/chimere/edit.html b/chimere/templates/chimere/edit.html index 8382f06..172dc6d 100644 --- a/chimere/templates/chimere/edit.html +++ b/chimere/templates/chimere/edit.html @@ -1,7 +1,7 @@ {% extends "chimere/base.html" %} {% load i18n chimere_tags adminmedia inline_formset%} {% block extra_head %} - {{ form.media }} + {{ extra_head }} {{ block.super }} {% head_chimere False %} {% if dated %} @@ -34,6 +34,7 @@ <label for="id_point">{% trans "Point"%} *</label> {%if form.point.errors %}<ul class="errorlist"><li>{% trans "Select a location for this new site" %}</li></ul>{%endif%} {{point_widget}} + {{nominatim_widget}} </div> </div> </div> diff --git a/chimere/views.py b/chimere/views.py index 6cd87d0..599b72e 100644 --- a/chimere/views.py +++ b/chimere/views.py @@ -50,7 +50,7 @@ from chimere.models import Category, SubCategory, PropertyModel, Page,\ Marker, Route, News, SimpleArea, Map, Color, TinyUrl, RouteFile,\ AggregatedRoute -from chimere.widgets import getMapJS, PointChooserWidget, \ +from chimere.widgets import getMapJS, PointChooserWidget, NominatimWidget,\ RouteChooserWidget, AreaWidget from chimere.forms import MarkerForm, RouteForm, ContactForm, FileForm, \ FullFileForm, MultimediaFileFormSet, PictureFileFormSet, notifySubmission,\ @@ -355,12 +355,13 @@ def edit(request, map_name="", item_id=None, submited=False, 'formset_multi':formset_multi, 'formset_picture':formset_picture, 'dated':settings.CHIMERE_DAYS_BEFORE_EVENT, - 'extra_head':form.media, + 'extra_head':form.media + NominatimWidget().media, 'marker_id':item_id, 'sub_categories':sub_categories, 'point_widget':PointChooserWidget().render('point', point_value, map_name=response_dct['map_name']), + 'nominatim_widget':NominatimWidget().render('point'), 'properties':declared_fields, 'filtered_properties':filtered_properties, 'submited':submited diff --git a/chimere/widgets.py b/chimere/widgets.py index b3ec156..d5e502e 100644 --- a/chimere/widgets.py +++ b/chimere/widgets.py @@ -225,11 +225,10 @@ class DatePickerWidget(forms.TextInput): class NominatimWidget(forms.TextInput): class Media: js = ["%schimere/js/nominatim-widget.js" % settings.STATIC_URL] - def render(self, name, value, attrs=None, map_name=''): + def render(self, name, value=None, attrs=None, map_name=''): return mark_safe( render_to_string('chimere/blocks/nominatim_widget.html', - {'id':name, 'nominatim_url':settings.NOMINATIM_URL, - 'label':_(u"Street, City, Country")} + {'id':name, 'nominatim_url':settings.NOMINATIM_URL} )) class PointChooserWidget(forms.TextInput): |
