<div>
- <div class="mb-3">
- <label class="form-label"><%= t ".with external" %></label>
+ <div class="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="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="justify-content-center d-flex align-items-center flex-wrap gap-2 w-50 px-1">
+ <% else %>
+ <div class="justify-content-center d-flex align-items-center flex-wrap gap-2 w-100">
<% end %>
+
+ <%= link_to image_tag("openid.svg",
+ :alt => t("application.auth_providers.openid.alt"),
+ :size => "36"),
+ "#",
+ :id => "openid_open_url",
+ :title => t("application.auth_providers.openid.title"),
+ :class => "btn btn-light 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>