]> git.openstreetmap.org Git - rails.git/commitdiff
Merge remote-tracking branch 'upstream/pull/5003'
authorTom Hughes <tom@compton.nu>
Thu, 18 Jul 2024 16:21:28 +0000 (17:21 +0100)
committerTom Hughes <tom@compton.nu>
Thu, 18 Jul 2024 16:21:28 +0000 (17:21 +0100)
app/views/accounts/edit.html.erb
app/views/application/_auth_providers.html.erb
app/views/layouts/_search.html.erb
lib/auth.rb
test/system/search_test.rb

index f15bc195c584d7614bfe1548f08fa4a63d24d860..a3e6f943bb9ef714979811c8c1c2e56015990a07 100644 (file)
@@ -19,7 +19,7 @@
   <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>
index c77a3ed3ee171700a5725e26542e02436e933dd8..895a42eb0bdf49fea6a7ff4b2a4bc5a6151bcd34 100644 (file)
@@ -1,11 +1,4 @@
-<% 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 %>
index b6baed5f7725f471e13ac562e8952642576dcb19..36e1a7a9298ab8da3b9a081b6438f491f59437bf 100644 (file)
@@ -1,9 +1,15 @@
+<% 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>
index 01167fb1d6695bd9089617f1d1ee259bdb61057c..729772477757ac810113e6abf77a92fead58e904 100644 (file)
@@ -3,7 +3,6 @@ module Auth
 
   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)
index 8cda1f74e853d342a984e3b1a7cdcb0608e635c0..ced1e1beb2b0955cdbb124bdefff0858ad96be14 100644 (file)
@@ -11,4 +11,22 @@ class SearchTest < ApplicationSystemTestCase
     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