diff options
Diffstat (limited to 'chimere/templates')
-rw-r--r-- | chimere/templates/chimere/main_map.html | 2 | ||||
-rw-r--r-- | chimere/templates/search/search.html | 9 | ||||
-rw-r--r-- | chimere/templates/search/search_haystack.html | 52 | ||||
-rw-r--r-- | chimere/templates/search/search_haystack_js.html | 27 | ||||
-rw-r--r-- | chimere/templates/search/search_js.html | 10 |
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 }});">← {% 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..." %} →</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]); } |