]> git.openstreetmap.org Git - rails.git/blobdiff - app/views/application/_auth_providers.html.erb
Merge pull request #5333 from AntonKhorev/auth-buttons-same-as-preferred
[rails.git] / app / views / application / _auth_providers.html.erb
index 89de3b4ffbf63a19f01ae08f9ce3d523d1d90911..3feda6139a4473b637ae4d678fd90da8f6879be6 100644 (file)
@@ -1,52 +1,38 @@
-<% 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",
 
 <div>
   <%= tag.div :id => "login_auth_buttons",
-              :class => ["row row-cols-1", { "row-cols-sm-2" => prefered_auth_button_available }, "g-2 mb-3"] do %>
+              :class => ["collapse show row row-cols-1", { "row-cols-sm-2" => prefered_auth_button_available }, "g-2 mb-3"] do %>
 
     <% if prefered_auth_button_available %>
       <div class="col justify-content-center d-flex align-items-center flex-wrap">
 
     <% if prefered_auth_button_available %>
       <div class="col justify-content-center d-flex align-items-center flex-wrap">
-        <% %w[google facebook microsoft github wikipedia].each do |provider| %>
-          <% if Settings.key?("#{provider}_auth_id".to_sym) -%>
-            <% if @preferred_auth_provider == provider %>
-              <%= auth_button_preferred provider %>
-            <% end %>
-          <% end -%>
-        <% end -%>
+        <%= auth_button_preferred @preferred_auth_provider %>
       </div>
     <% end %>
 
     <div class="col justify-content-center d-flex align-items-center flex-wrap gap-2">
       </div>
     <% 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("auth_providers/openid.svg",
+                                   :alt => t(".openid.alt"),
+                                   :size => "36"),
+                         :type => "button",
+                         :data => { "bs-toggle" => "collapse",
+                                    "bs-target" => "#login_auth_buttons, #openid_login_form" },
+                         :title => t(".openid.title"),
+                         :class => "btn btn-outline-secondary border p-2" %>
+        <% elsif provider != @preferred_auth_provider %>
+          <%= auth_button provider %>
+        <% end -%>
       <% end -%>
     </div>
   <% end %>
 
   <%# :tabindex starts high to allow rendering at the bottom of the template %>
       <% end -%>
     </div>
   <% end %>
 
   <%# :tabindex starts high to allow rendering at the bottom of the template %>
-  <%= form_tag(auth_path(:provider => "openid"), :id => "openid_login_form") do %>
+  <%= form_tag auth_path(:provider => "openid"), :id => "openid_login_form", :class => "collapse" do %>
     <div class="mb-3">
       <label for="openid_url" class="form-label">
     <div class="mb-3">
       <label for="openid_url" class="form-label">
-        <%= image_tag "openid.svg", :size => "36", :alt => "", :class => "align-text-bottom" %>
+        <%= image_tag "auth_providers/openid.svg", :size => "36", :alt => "", :class => "align-text-bottom" %>
         <%= t ".openid_url" %>
       </label>
       <%= hidden_field_tag("referer", params[:referer], :autocomplete => "off") %>
         <%= t ".openid_url" %>
       </label>
       <%= hidden_field_tag("referer", params[:referer], :autocomplete => "off") %>