- 'app/controllers/directions_controller.rb'
- 'app/controllers/errors_controller.rb'
- 'app/controllers/export_controller.rb'
- - 'app/controllers/geocoder_controller.rb'
- 'app/controllers/issues_controller.rb'
- 'app/controllers/site_controller.rb'
- 'app/controllers/traces_controller.rb'
can :search, :direction
can [:index, :permalink, :edit, :help, :fixthemap, :offline, :export, :about, :communities, :preview, :copyright, :id], :site
can [:finish, :embed], :export
- can [:create, :search], :geocoder
+ can [:create, :read], :search
if Settings.status != "database_offline"
can [:read, :feed], Changeset
class QueriesController < ApplicationController
before_action :authorize_web
before_action :set_locale
- authorize_resource :class => :geocoder
+ authorize_resource :class => :search
private
-class GeocoderController < ApplicationController
+class SearchesController < ApplicationController
include NominatimMethods
before_action :authorize_web
before_action :normalize_params
- def search
+ def show
@sources = []
if params[:lat] && params[:lon]
success: "You successfully unfollowed %{name}."
not_followed: "You are not following %{name}."
geocoder:
- search:
- title:
- latlon: Internal
- osm_nominatim: OpenStreetMap Nominatim
- osm_nominatim_reverse: OpenStreetMap Nominatim
search_osm_nominatim:
prefix_format: "%{name}"
prefix:
township: "Township Boundary"
village: "Village Boundary"
searches:
+ show:
+ title:
+ latlon: Internal
+ osm_nominatim: OpenStreetMap Nominatim
+ osm_nominatim_reverse: OpenStreetMap Nominatim
queries:
create:
no_results: "No results found"
end
# geocoder
- get "/search" => "geocoder#search"
- resource :search, :only => [] do
+ resource :search, :only => :show do
scope :module => :searches do
resource :latlon_query, :only => :create
resource :nominatim_query, :only => :create
end
class GuestAbilityTest < AbilityTest
- test "geocoder permission for a guest" do
+ test "search permissions for a guest" do
ability = Ability.new nil
- [:create, :search].each do |action|
- assert ability.can?(action, :geocoder), "should be able to #{action} geocoder"
+ [:create, :show].each do |action|
+ assert ability.can?(action, :search), "should be able to #{action} searches"
end
end
require "test_helper"
-class GeocoderControllerTest < ActionDispatch::IntegrationTest
+class SearchesControllerTest < ActionDispatch::IntegrationTest
##
# test all routes which lead to this controller
def test_routes
assert_routing(
{ :path => "/search", :method => :get },
- { :controller => "geocoder", :action => "search" }
+ { :controller => "searches", :action => "show" }
)
end
].each do |code|
get search_path(:query => code)
assert_response :success
- assert_template :search
+ assert_template :show
assert_template :layout => "map"
assert_equal %w[osm_nominatim], assigns(:sources).pluck(:name)
end
def latlon_check(query, lat, lon)
get search_path(:query => query)
assert_response :success
- assert_template :search
+ assert_template :show
assert_template :layout => "map"
assert_equal %w[latlon osm_nominatim_reverse], assigns(:sources).pluck(:name)
assert_nil @controller.params[:query]
get search_path(:query => query), :xhr => true
assert_response :success
- assert_template :search
+ assert_template :show
assert_template :layout => "xhr"
assert_equal %w[latlon osm_nominatim_reverse], assigns(:sources).pluck(:name)
assert_nil @controller.params[:query]
def search_check(query, sources)
get search_path(:query => query)
assert_response :success
- assert_template :search
+ assert_template :show
assert_template :layout => "map"
assert_equal sources, assigns(:sources).pluck(:name)
get search_path(:query => query), :xhr => true
assert_response :success
- assert_template :search
+ assert_template :show
assert_template :layout => "xhr"
assert_equal sources, assigns(:sources).pluck(:name)
end
assert_redirected_to :controller => :notes, :action => :show, :id => 123
get root_path(:query => "test")
- assert_redirected_to :controller => :geocoder, :action => :search, :query => "test"
+ assert_redirected_to search_path(:query => "test")
get root_path(:lat => 4, :lon => 5)
assert_redirected_to :controller => :site, :action => :index, :anchor => "map=5/4/5"