summaryrefslogtreecommitdiff
path: root/chimere/templates
diff options
context:
space:
mode:
Diffstat (limited to 'chimere/templates')
-rw-r--r--chimere/templates/chimere/main_map.html2
-rw-r--r--chimere/templates/search/search.html9
-rw-r--r--chimere/templates/search/search_haystack.html52
-rw-r--r--chimere/templates/search/search_haystack_js.html27
-rw-r--r--chimere/templates/search/search_js.html10
5 files changed, 92 insertions, 8 deletions
diff --git a/chimere/templates/chimere/main_map.html b/chimere/templates/chimere/main_map.html
index 610487b..3d85cc9 100644
--- a/chimere/templates/chimere/main_map.html
+++ b/chimere/templates/chimere/main_map.html
@@ -29,7 +29,7 @@
var has_search = {% if has_search %}true{% else %}false{% endif %};
// array to keep trace of already displayed items
var search_result = new Array();
- var search_url = "/search/";
+ var search_url = "{% url 'chimere:search' area_name %}";
$(function(){
if (has_search){
load_search_box();
diff --git a/chimere/templates/search/search.html b/chimere/templates/search/search.html
index b7e6d69..e2f7619 100644
--- a/chimere/templates/search/search.html
+++ b/chimere/templates/search/search.html
@@ -1,4 +1,4 @@
-{% load url from future %}{% load i18n %}
+{% load i18n %}
<script type='text/javascript'>
var do_you_mean = "{% trans 'Do you mean: ' %}";
var end_do_you_mean = "{% trans '?' %}";
@@ -7,11 +7,11 @@ var end_do_you_mean = "{% trans '?' %}";
{% include "search/search_js.html" %}
<div id='search-listing'>
<ul>
-{% for result in page.object_list %}{% if result.object %}
+{% for result in results %}
<li>
- <img src='{{MEDIA_URL}}{{result.object.default_category.icon.image}}'/><a href="#" onclick="$('#main-map').chimere('showPopup', '{{result.object.full_id}}');return false;">{{ result.object }}</a>
+ <img src='{{MEDIA_URL}}{{result.properties.icon_path}}'/><a href="#" onclick="$('#main-map').chimere('showPopup', '{{result.properties.key}}');return false;">{{ result.properties.name }}</a>
</li>
-{% endif %}{% empty %}
+{% empty %}
<li>{% trans "No results found." %}</li>
{% endfor %}
</ul>
@@ -30,6 +30,7 @@ var end_do_you_mean = "{% trans '?' %}";
{% else %}
<form id='search-form' class='autocomplete-me'>
<input type="text" id="id_q" name="q" autocomplete="off"/>
+ <input type="hidden" id="id_area" name="area" value="{{area_name}}"/>
<button name='haystack-search' id='haystack-search' type='button' class="btn btn-default"><span class='action-label'>{% trans "Search" %} </span><span class="glyphicon glyphicon-search"></span></button>
</form>
<div id='spelling'></div>
diff --git a/chimere/templates/search/search_haystack.html b/chimere/templates/search/search_haystack.html
new file mode 100644
index 0000000..c47de59
--- /dev/null
+++ b/chimere/templates/search/search_haystack.html
@@ -0,0 +1,52 @@
+{% load i18n %}
+<script type='text/javascript'>
+var do_you_mean = "{% trans 'Do you mean: ' %}";
+var end_do_you_mean = "{% trans '?' %}";
+</script>
+{% if query %}
+{% include "search/search_haystack_js.html" %}
+<div id='search-listing'>
+ <ul>
+{% for result in page.object_list %}{% if result.object %}
+ <li>
+ <img src='{{MEDIA_URL}}{{result.object.default_category.icon.image}}'/><a href="#" onclick="$('#main-map').chimere('showPopup', '{{result.object.full_id}}');return false;">{{ result.object }}</a>
+ </li>
+{% endif %}{% empty %}
+ <li>{% trans "No results found." %}</li>
+{% endfor %}
+ </ul>
+</div>
+{% if page.has_previous or page.has_next %}
+ <div id='search-nav'>
+ <nav>
+ <ul class="pager">
+ {% if page.has_previous %}<li class="previous"><a href="#" onclick="haystack_search(this, {{ page.previous_page_number }});">&larr; {% trans "Previous" %}</a></li>{% endif %}
+ {% if page.has_next %}<li class="next"><a href="#" onclick="haystack_search(this, {{ page.next_page_number }});">{% trans "More results..." %} &rarr;</a></li>{% endif %}
+ </ul>
+ </nav>
+ </div>
+{% endif %}
+
+{% else %}
+<form id='search-form' class='autocomplete-me'>
+ <input type="text" id="id_q" name="q" autocomplete="off"/>
+ <button name='haystack-search' id='haystack-search' type='button' class="btn btn-default"><span class='action-label'>{% trans "Search" %} </span><span class="glyphicon glyphicon-search"></span></button>
+</form>
+<div id='spelling'></div>
+<div id='search-result'></div>
+<script type='text/javascript'>
+no_result_message = "{% trans 'No exact match.' %}";
+$(function(){
+ $('#haystack-search').click(
+ function(evt){
+ $("#main-map").chimere("razMap");
+ haystack_search(evt);
+ });
+ {% if autocomplete %}
+ window.autocomplete = new Autocomplete({
+ form_selector: '.autocomplete-me'
+ });
+ window.autocomplete.setup();{% endif %}
+});
+</script>
+{% endif %}
diff --git a/chimere/templates/search/search_haystack_js.html b/chimere/templates/search/search_haystack_js.html
new file mode 100644
index 0000000..7a793f0
--- /dev/null
+++ b/chimere/templates/search/search_haystack_js.html
@@ -0,0 +1,27 @@
+<script type='text/javascript'>
+$(function(){
+ // clean checked categories
+ $('.subcategory').each(function(){ $(this).removeClass('selected'); });
+ $('.subcategory input[type=checkbox]').attr('checked', false);
+
+ var geo_objects = [];
+ {% for result in page.object_list %}{% if result %}
+ var c_lst ={{result.object.getGeoJSON|safe}};
+ for (idx in c_lst){
+ geo_objects.push(c_lst[idx]);
+ }{% endif %}{% endfor %}
+ var geo_features = {};
+ for (idx=0 ; idx < geo_objects.length ; idx++){
+ var c_idx = geo_objects[idx].properties.pk;
+ if (search_result.indexOf(c_idx) == -1){
+ search_result.push(c_idx);
+ geo_features[c_idx] = $('#main-map').chimere('addMarker',
+ geo_objects[idx]);
+ }
+ }
+ if (geo_objects.length){
+ window.setTimeout(function(){$("#main-map").chimere("zoomToMarkerExtent")}, 500);
+ }
+});
+</script>
+
diff --git a/chimere/templates/search/search_js.html b/chimere/templates/search/search_js.html
index 7a793f0..41771c2 100644
--- a/chimere/templates/search/search_js.html
+++ b/chimere/templates/search/search_js.html
@@ -5,16 +5,20 @@ $(function(){
$('.subcategory input[type=checkbox]').attr('checked', false);
var geo_objects = [];
- {% for result in page.object_list %}{% if result %}
- var c_lst ={{result.object.getGeoJSON|safe}};
+ {% if results %}
+ var c_lst ={{results|safe}};
for (idx in c_lst){
geo_objects.push(c_lst[idx]);
- }{% endif %}{% endfor %}
+ }{% endif %}
var geo_features = {};
for (idx=0 ; idx < geo_objects.length ; idx++){
var c_idx = geo_objects[idx].properties.pk;
if (search_result.indexOf(c_idx) == -1){
search_result.push(c_idx);
+ for (k in geo_objects[idx]){
+ alert(k);
+ alert(geo_objects[idx][k]);
+ }
geo_features[c_idx] = $('#main-map').chimere('addMarker',
geo_objects[idx]);
}