Only add bbox data to the search form while we submit it

Having the bbox attributes on the search form all the time means
that Firefox will incude them in the arguments if you bookmark the
search using "Add a keyword for this search" on the context menu.
This commit is contained in:
Tom Hughes 2011-05-22 11:08:17 +01:00
parent 9105a7e66d
commit 7014cdb32c
2 changed files with 43 additions and 17 deletions

View file

@ -1,9 +1,5 @@
<script type="text/javascript">
<!--
function startSearch() {
updateSidebar("<%= t 'site.sidebar.search_results' %>", "");
}
function describeLocation() {
var args = getArgs($("viewanchor").href);
@ -16,10 +12,46 @@
<% if params[:action] == 'index' %>
var extent = getMapExtent();
$("minlon").value = extent.left;
$("minlat").value = extent.bottom;
$("maxlon").value = extent.right;
$("maxlat").value = extent.top;
var minlon = document.createElement("input");
minlon.type = "hidden";
minlon.id = "minlon";
minlon.name = "minlon";
minlon.value = extent.left;
$("search_form").appendChild(minlon);
var minlat = document.createElement("input");
minlat.type = "hidden";
minlat.id = "minlat";
minlat.name = "minlat";
minlat.value = extent.bottom;
$("search_form").appendChild(minlat);
var maxlon = document.createElement("input");
maxlon.type = "hidden";
maxlon.id = "maxlon";
maxlon.name = "maxlon";
maxlon.value = extent.left;
$("search_form").appendChild(maxlon);
var maxlat = document.createElement("input");
maxlat.type = "hidden";
maxlat.id = "maxlat";
maxlat.name = "maxlat";
maxlat.value = extent.bottom;
$("search_form").appendChild(maxlat);
<% end %>
}
function startSearch() {
updateSidebar("<%= t 'site.sidebar.search_results' %>", "");
}
function endSearch() {
<% if params[:action] == 'index' %>
$("minlon").remove();
$("minlat").remove();
$("maxlon").remove();
$("maxlat").remove();
<% end %>
}
@ -34,20 +66,14 @@
<div class="optionalbox">
<span class="whereami"><a href="javascript:describeLocation()" title="<%= t 'site.search.where_am_i_title' %>"><%= t 'site.search.where_am_i' %></a></span>
<h1><%= t 'site.search.search' %></h1>
<div class="search_form">
<div class="search_container">
<div id="search_field">
<% form_remote_tag(:before => "setSearchViewbox()",
:loading => "startSearch()",
:complete => "endSearch()",
:url => { :controller => :geocoder, :action => :search },
:html => { :method => "get", :action => url_for(:action => "index") }) do %>
:html => { :id => "search_form", :method => "get", :action => url_for(:action => "index") }) do %>
<%= text_field_tag :query, h(params[:query]), :tabindex => "1" %>
<% if params[:action] == 'index' %>
<%= hidden_field_tag :minlon %>
<%= hidden_field_tag :minlat %>
<%= hidden_field_tag :maxlon %>
<%= hidden_field_tag :maxlat %>
<% end %>
<%= submit_tag t('site.search.submit_text') %>
<% end %>
</div>

View file

@ -222,7 +222,7 @@ hr {
float: right;
}
.search_form {
.search_container {
height: 16px;
padding-bottom: 6px;
}