]> git.openstreetmap.org Git - rails.git/blobdiff - app/views/site/_search.html.erb
Add an extra null pointer check that can trigger in tests
[rails.git] / app / views / site / _search.html.erb
index d6c1e38fa08b24e8449be7c3292e4ae890c3e91a..31b5af16f9f3a92aad912dc97b681ac0e32a2f33 100644 (file)
@@ -1,29 +1,30 @@
 <script type="text/javascript">
 <!--
   function startSearch() {
 <script type="text/javascript">
 <!--
   function startSearch() {
-    updateSidebar("<%= t 'site.sidebar.search_results' %>", "<p class='search_results_entry'><%= t 'site.search.searching' %><\/p>");
-
-    $("search_field").style.display = "none";
-    $("search_active").style.display = "inline";
-  }
-
-  function endSearch() {
-    $("search_field").style.display = "inline";
-    $("search_active").style.display = "none";
+    updateSidebar("<%= t 'site.sidebar.search_results' %>", "");
   }
 
   function describeLocation() {
   }
 
   function describeLocation() {
-    var position = getPosition();
+    var args = getArgs($("viewanchor").href);
 
     <%= remote_function(:loading => "startSearch()",
 
     <%= remote_function(:loading => "startSearch()",
-                        :complete => "endSearch()",
                         :url => { :controller => :geocoder, :action => :description },
                         :url => { :controller => :geocoder, :action => :description },
-                        :with => "'lat=' + position.lat + '&lon=' + position.lon") %>
+                        :with => "'lat=' + args['lat'] + '&lon=' + args['lon'] + '&zoom=' + args['zoom']") %>
+  }
+
+  function setSearchViewbox() {
+    <% if params[:action] == 'index' %>
+    var extent = getMapExtent();
+
+    $("minlon").value = extent.left;
+    $("minlat").value = extent.bottom;
+    $("maxlon").value = extent.right;
+    $("maxlat").value = extent.top;
+    <% end %>
   }
 
   <% if params[:query] %>
   <%= remote_function(:loading => "startSearch()",
   }
 
   <% if params[:query] %>
   <%= remote_function(:loading => "startSearch()",
-                      :complete => "endSearch()",
                       :url => { :controller => :geocoder, :action => :search, :query => h(params[:query]) }) %>
   <% end %>
 // -->
                       :url => { :controller => :geocoder, :action => :search, :query => h(params[:query]) }) %>
   <% end %>
 // -->
 
 <% content_for "optionals" do %>
   <div class="optionalbox">
 
 <% content_for "optionals" do %>
   <div class="optionalbox">
-    <span class="oboxheader"><%= t 'site.search.search' %></span>
-    <span class="whereami"><a href="javascript:describeLocation()"><%= t 'site.search.where_am_i' %></a></span>
+    <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 id="search_field">
     <div class="search_form">
     <div id="search_field">
-    <% form_remote_tag(:loading => "startSearch()",
+    <% form_remote_tag(:before => "setSearchViewbox()",
+                       :loading => "startSearch()",
                        :complete => "endSearch()",
                        :complete => "endSearch()",
-                       :url => { :controller => :geocoder, :action => :search }) do %>
+                       :url => { :controller => :geocoder, :action => :search },
+                       :html => { :method => "get", :action => url_for(:action => "index") }) do %>
       <%= text_field_tag :query, h(params[:query]) %>
       <%= text_field_tag :query, h(params[:query]) %>
+      <% 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>
       <%= submit_tag t('site.search.submit_text') %>
     <% end %>
     </div>
-    <p id="search_active"><%= t 'site.search.searching' %></p>
     </div>
     <p class="search_help">
       <%= t 'site.search.search_help' %>
     </div>
     <p class="search_help">
       <%= t 'site.search.search_help' %>