summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
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
commitbfc5f255441685871f3de56cdede9448288cc7cc (patch)
treebce1e4fe5dc5bfa9903608e37bb61a56b20ba5f9
parent4cb7d312d9f17a722207624c0f0977b43b5416d2 (diff)
downloadChimère-bfc5f255441685871f3de56cdede9448288cc7cc.tar.bz2
Chimère-bfc5f255441685871f3de56cdede9448288cc7cc.zip
Configure Nominatim widget for edit page
-rw-r--r--chimere/static/chimere/css/styles.css5
-rw-r--r--chimere/static/chimere/js/jquery.chimere-ol.js12
-rw-r--r--chimere/static/chimere/js/nominatim-widget.js7
-rw-r--r--chimere/templates/chimere/blocks/live_coordinates.html4
-rw-r--r--chimere/templates/chimere/blocks/nominatim_widget.html6
-rw-r--r--chimere/templates/chimere/edit.html3
-rw-r--r--chimere/views.py5
-rw-r--r--chimere/widgets.py5
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'>&nbsp;</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):