]> git.openstreetmap.org Git - rails.git/commitdiff
Permit search parameters separately for each source
authorAnton Khorev <tony29@yandex.ru>
Sun, 30 Mar 2025 03:46:51 +0000 (06:46 +0300)
committerAnton Khorev <tony29@yandex.ru>
Mon, 31 Mar 2025 16:34:11 +0000 (19:34 +0300)
app/controllers/geocoder_controller.rb
app/views/geocoder/search.html.erb

index 0ccd1d14badb5ba15cd9562f2cd2bd8ccaae7164..81c179a677576d345515171feefa3f6101e5ecb3 100644 (file)
@@ -6,17 +6,22 @@ class GeocoderController < ApplicationController
   before_action :authorize_web
   before_action :set_locale
   before_action :require_oauth, :only => [:search]
+
   authorize_resource :class => false
 
+  before_action :normalize_params, :only => [:search]
+
   def search
-    @params = normalize_params
     @sources = []
 
-    if @params[:lat] && @params[:lon]
-      @sources.push(:name => "latlon", :url => root_path, :fetch_url => url_for(@params.merge(:action => "search_latlon")))
-      @sources.push(:name => "osm_nominatim_reverse", :url => nominatim_reverse_url(:format => "html"), :fetch_url => url_for(@params.merge(:action => "search_osm_nominatim_reverse")))
-    elsif @params[:query]
-      @sources.push(:name => "osm_nominatim", :url => nominatim_url(:format => "html"), :fetch_url => url_for(@params.merge(:action => "search_osm_nominatim")))
+    if params[:lat] && params[:lon]
+      @sources.push(:name => "latlon", :url => root_path,
+                    :fetch_url => url_for(params.permit(:lat, :lon, :latlon_digits, :zoom).merge(:action => "search_latlon")))
+      @sources.push(:name => "osm_nominatim_reverse", :url => nominatim_reverse_url(:format => "html"),
+                    :fetch_url => url_for(params.permit(:lat, :lon, :zoom).merge(:action => "search_osm_nominatim_reverse")))
+    elsif params[:query]
+      @sources.push(:name => "osm_nominatim", :url => nominatim_url(:format => "html"),
+                    :fetch_url => url_for(params.permit(:query, :minlat, :minlon, :maxlat, :maxlon).merge(:action => "search_osm_nominatim")))
     end
 
     if @sources.empty?
@@ -221,8 +226,6 @@ class GeocoderController < ApplicationController
         params[:latlon_digits] = true
       end
     end
-
-    params.permit(:query, :lat, :lon, :latlon_digits, :zoom, :minlat, :minlon, :maxlat, :maxlon)
   end
 
   def dms_regexp(name_prefix)
index efbaab253d4dffbf0fa333e221fefa5620d3cde0..b734c07e1db7b5b02fd9624ab0113baf1ccdd747 100644 (file)
@@ -1,4 +1,4 @@
-<% set_title(@params[:query]) %>
+<% set_title(params[:query]) %>
 
 <%= render "sidebar_header", :title => t("site.sidebar.search_results") %>