<fieldset class="mb-3">
<label for="user_auth_provider" class="form-label"><%= t(".external auth") %></label>
<div class="row">
- <%= f.select(:auth_provider, Auth.providers, :hide_label => true, :wrapper => { :class => "col-auto mb-0" }) %>
+ <%= f.select(:auth_provider, { t("auth.providers.none") => "" }.merge(Auth.providers), :hide_label => true, :wrapper => { :class => "col-auto mb-0" }) %>
<%= f.text_field(:auth_uid, :hide_label => true, :wrapper => { :class => "col mb-0" }) %>
</div>
<small class="form-text text-body-secondary">(<a href="<%= t ".openid.link" %>" target="_new"><%= t ".openid.link text" %></a>)</small>
-<% prefered_auth_button_available = false %>
-<% %w[google facebook microsoft github wikipedia].each do |provider| %>
- <% if Settings.key?("#{provider}_auth_id".to_sym) -%>
- <% if @preferred_auth_provider == provider %>
- <% prefered_auth_button_available = true %>
- <% end %>
- <% end -%>
-<% end -%>
+<% prefered_auth_button_available = @preferred_auth_provider != "openid" && Auth.providers.value?(@preferred_auth_provider) %>
<div>
<%= tag.div :id => "login_auth_buttons",
<% end %>
<div class="col justify-content-center d-flex align-items-center flex-wrap gap-2">
- <%= button_tag image_tag("openid.svg",
- :alt => t(".openid.alt"),
- :size => "36"),
- :type => "button",
- :id => "openid_open_url",
- :title => t(".openid.title"),
- :class => "btn btn-light p-2" %>
-
- <% %w[google facebook microsoft github wikipedia].each do |provider| %>
- <% unless @preferred_auth_provider == provider %>
- <% if Settings.key?("#{provider}_auth_id".to_sym) -%>
- <%= auth_button provider %>
- <% end -%>
- <% end %>
+ <% Auth.providers.each_value do |provider| %>
+ <% if provider == "openid" %>
+ <%= button_tag image_tag("openid.svg",
+ :alt => t(".openid.alt"),
+ :size => "36"),
+ :type => "button",
+ :id => "openid_open_url",
+ :title => t(".openid.title"),
+ :class => "btn btn-light p-2" %>
+ <% elsif provider != @preferred_auth_provider %>
+ <%= auth_button provider %>
+ <% end -%>
<% end -%>
</div>
<% end %>
+<% search_query = if params[:query]
+ params[:query]
+ elsif params[:lat] && params[:lon]
+ "#{params[:lat]}, #{params[:lon]}"
+ end %>
+
<div class="search_forms">
<form method="GET" action="<%= search_path %>" class="search_form bg-body-secondary px-1 py-2">
<div class="row gx-2 mx-0">
<div class="col">
<div class="input-group flex-nowrap">
- <%= text_field_tag "query", params[:query], :placeholder => t("site.search.search"), :autofocus => autofocus, :autocomplete => "on", :class => "form-control z-0 py-1 px-2", :dir => "auto" %>
+ <%= text_field_tag "query", search_query, :placeholder => t("site.search.search"), :autofocus => autofocus, :autocomplete => "on", :class => "form-control z-0 py-1 px-2", :dir => "auto" %>
<div class="input-group-text border-start-0 p-0 position-relative">
<%= button_tag t("site.search.where_am_i"), :type => "button", :class => "describe_location position-absolute end-0 top-0 bottom-0 m-1 btn btn-outline-primary border-0 p-1 bg-transparent text-primary link-body-emphasis link-opacity-100-hover", :title => t("site.search.where_am_i_title") %>
</div>
def self.providers
@providers[I18n.locale] ||= {
- I18n.t("auth.providers.none") => "",
I18n.t("auth.providers.openid") => "openid"
}.tap do |providers|
providers[I18n.t("auth.providers.google")] = "google" if Settings.key?(:google_auth_id)
click_on "Where is this?"
assert_field "Search", :with => "1.234, 6.789"
end
+
+ test "query search link sets search input value" do
+ stub_request(:get, %r{^https://nominatim\.openstreetmap\.org/reverse\?})
+ .to_return(:status => 404)
+
+ visit search_path(:query => "2.341, 7.896")
+
+ assert_field "Search", :with => "2.341, 7.896"
+ end
+
+ test "latlon search link sets search input value" do
+ stub_request(:get, %r{^https://nominatim\.openstreetmap\.org/reverse\?})
+ .to_return(:status => 404)
+
+ visit search_path(:lat => "4.321", :lon => "9.876")
+
+ assert_field "Search", :with => "4.321, 9.876"
+ end
end