]> git.openstreetmap.org Git - rails.git/blobdiff - app/views/application/_auth_providers.html.erb
Merge remote-tracking branch 'upstream/pull/4897'
[rails.git] / app / views / application / _auth_providers.html.erb
index 9c72d7aa09fd68dfdc891b1d7039a7469dd69001..0cbb529a500c70a34be6dc605dcfc3d469328fdc 100644 (file)
@@ -1,33 +1,57 @@
 <div>
-  <div class="mb-3">
-    <label class="form-label"><%= t ".with external" %></label>
+  <div class="list-inline justify-content-center d-flex align-items-center flex-wrap w-100 mb-3" id="login_auth_buttons">
 
-    <ul class='list-inline' id="login_auth_buttons">
-      <li class="list-inline-item me-3">
-        <%= link_to image_tag("openid.png",
-                              :alt => t("application.auth_providers.openid.title"),
-                              :size => "36"),
-                    "#",
-                    :id => "openid_open_url",
-                    :title => t("application.auth_providers.openid.title") %>
-      </li>
-
-      <% %w[google facebook microsoft github wikipedia].each do |provider| %>
-        <% if Settings.key?("#{provider}_auth_id".to_sym) -%>
-          <li class="list-inline-item me-3"><%= auth_button provider, provider %></li>
-        <% end -%>
+    <% 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 -%>
-    </ul>
+    <% end -%>
 
-    <%= form_tag(auth_path(:provider => "openid"), :id => "openid_login_form") do %>
-      <div id='login_openid_url' class="mb-3">
-        <label for='openid_url' class="form-label"><%= t ".openid_html", :logo => openid_logo %></label>
-        <%= hidden_field_tag("referer", params[:referer], :autocomplete => "off") %>
-        <%= text_field_tag("openid_url", "", :tabindex => 5, :autocomplete => "on", :class => "openid_url form-control") %>
-        <span class="form-text text-muted">(<a href="<%= t "accounts.edit.openid.link" %>" target="_new"><%= t "accounts.edit.openid.link text" %></a>)</span>
+    <% if prefered_auth_button_available %>
+      <div class="list-inline justify-content-center d-flex align-items-center flex-wrap w-50">
+        <% %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, provider %>
+            <% end %>
+          <% end -%>
+        <% end -%>
       </div>
-
-      <%= submit_tag t(".openid_login_button"), :tabindex => 6, :id => "openid_login_button", :class => "btn btn-primary" %>
+      <div class="list-inline justify-content-center d-flex align-items-center flex-wrap w-50">
+    <% else %>
+      <div class="list-inline justify-content-center d-flex align-items-center flex-wrap w-100">
     <% end %>
+
+      <%= link_to image_tag("openid.png",
+                            :alt => t("application.auth_providers.openid.title"),
+                            :size => "24"),
+                  "#",
+                  :id => "openid_open_url",
+                  :title => t("application.auth_providers.openid.title"),
+                  :class => "p-2 d-block" %>
+
+      <% %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, provider %>
+          <% end -%>
+        <% end %>
+      <% end -%>
+    </div>
   </div>
+
+  <%# :tabindex starts high to allow rendering at the bottom of the template %>
+  <%= form_tag(auth_path(:provider => "openid"), :id => "openid_login_form") do %>
+    <div id="login_openid_url" class="mb-3">
+      <label for="openid_url" class="form-label"><%= t ".openid_html", :logo => openid_logo %></label>
+      <%= hidden_field_tag("referer", params[:referer], :autocomplete => "off") %>
+      <%= text_field_tag("openid_url", "", :tabindex => 20, :autocomplete => "on", :class => "openid_url form-control") %>
+      <span class="form-text text-body-secondary">(<a href="<%= t "accounts.edit.openid.link" %>" target="_new"><%= t "accounts.edit.openid.link text" %></a>)</span>
+    </div>
+
+    <%= submit_tag t(".openid_login_button"), :tabindex => 21, :id => "openid_login_button", :class => "btn btn-primary" %>
+  <% end %>
 </div>