]> git.openstreetmap.org Git - rails.git/blobdiff - app/views/users/new.html.erb
Make the login and signup screens focus on the first input
[rails.git] / app / views / users / new.html.erb
index 7fd537d14101bcea6cd0487513e3be2a376b2798..865303f56ba4435d30af6b2da7f147770d99fa93 100644 (file)
 <% content_for :head do %>
   <%= javascript_include_tag "user" %>
 <% content_for :head do %>
   <%= javascript_include_tag "user" %>
+  <%= javascript_include_tag "auth_providers" %>
 <% end %>
 
 <% end %>
 
+<% content_for :heading_class, "p-0 mw-100" %>
+
 <% content_for :heading do %>
 <% content_for :heading do %>
-  <h1><%= t '.title' %></h1>
-  <div class='header-illustration new-user-main'></div>
-  <div class='header-illustration new-user-arm'></div>
-<% end %>
+  <% if @client_app_name %>
+    <p class="text-center text-muted fs-6 py-2 mb-0 bg-body"><%= t(".signup_to_authorize_html", :client_app_name => @client_app_name) %></p>
+  <% end %>
 
 
-<%= form_for current_user, :url => { :action => 'create' }, :html => { :class => 'standard-form fillL col6 inner22' } do |f| %>
-  <%= hidden_field_tag('referer', h(@referer)) unless @referer.nil? %>
+  <div class="header-illustration new-user-main auth-container mx-auto">
+    <ul class="nav nav-tabs position-absolute bottom-0 px-3 fs-6 w-100">
+      <li class="nav-item">
+        <%= link_to t("sessions.new.tab_title"), url_for(:action => :new, :controller => :sessions), :class => "nav-link" %>
+      </li>
+      <li class="nav-item">
+        <%= link_to t("users.new.tab_title"), "#", :class => "nav-link active" %>
+      </li>
+    </ul>
+  </div>
+<% end %>
 
 
-  <fieldset>
-    <div class="form-row">
-      <label for="email" class="standard-label">
-        <%= t '.email address' %>
-      </label>
-      <%= f.email_field(:email, { :tabindex => 1 }) %>
-      <%= f.error_message_on(:email) %>
+<div class="auth-container mx-auto my-0">
+  <% if current_user.auth_uid.nil? %>
+    <div class="text-muted fs-6">
+      <p><strong><%= t ".about.header" %></strong> <%= t ".about.paragraph_1" %></p>
+      <p><%= t ".about.paragraph_2" %></p>
     </div>
     </div>
-    <div class="form-row">
-      <label for="email_confirmation" class="standard-label">
-        <%= t '.confirm email address' %>
-      </label>
-      <%= f.email_field(:email_confirmation, { :tabindex => 2 }) %>
-      <%= f.error_message_on(:email_confirmation) %>
-    </div>
-    <span class="form-help deemphasize"><%= raw(t '.not displayed publicly') %></span>
-  </fieldset>
 
 
-  <fieldset>
-    <div class="form-row">
-      <label for="display_name" class="standard-label">
-        <%= t '.display name' %>
-      </label>
-      <%= f.text_field(:display_name, { :tabindex => 3 }) %>
-      <%= f.error_message_on(:display_name) %>
-    </div>
-    <span class="form-help deemphasize"><%= t '.display name description' %></span>
-  </fieldset>
+    <% unless @preferred_auth_provider.nil? %>
+      <%= render :partial => "auth_providers" %>
+      <div class="d-flex justify-content-center align-items-center">
+        <div class="border-bottom border-1 flex-grow-1"></div>
+        <div class="text-secondary mx-3"><%= t ".or" %></div>
+        <div class="border-bottom border-1 flex-grow-1"></div>
+      </div>
+    <% end %>
+  <% else %>
+    <h4><%= t ".about.welcome" %></h4>
+  <% end %>
 
 
-  <fieldset class="form-divider" id="auth_field">
-    <div class="form-row">
-      <label for="openid_url" class="standard-label">
-        <%= raw t '.external auth' %>
-      </label>
-      <%= f.select(:auth_provider, Auth::PROVIDERS, { :default => "", :tabindex => 4 }) %>
-      <%= f.text_field(:auth_uid, { :tabindex => 5 }) %>
-      <%= f.error_message_on(:auth_uid) %>
-    </div>
-    <span class="form-help deemphasize"><%= t '.auth no password' %></span>
-  </fieldset>
+  <%= bootstrap_form_for current_user, :url => { :action => "create" } do |f| %>
+    <%= hidden_field_tag("referer", h(@referer)) unless @referer.nil? %>
+    <%= hidden_field_tag("email_hmac", h(@email_hmac)) unless @email_hmac.nil? %>
+    <%= f.hidden_field :auth_provider unless current_user.auth_provider.nil? %>
+    <%= f.hidden_field :auth_uid unless current_user.auth_uid.nil? %>
 
 
-  <fieldset>
-    <div class="form-row">
-      <label for='user[pass_crypt]' class="standard-label">
-        <%= t '.password' %>
-      </label>
-      <%= f.password_field(:pass_crypt, { :tabindex => 6 }) %>
-      <%= f.error_message_on(:pass_crypt) %>
-    </div>
-    <div class="form-row">
-      <label class="standard-label">
-        <%= t '.confirm password' %>
-      </label>
-      <%= f.password_field(:pass_crypt_confirmation, { :tabindex => 7 }) %>
-      <%= f.error_message_on(:pass_crypt_confirmation) %>
-    </div>
-  </fieldset>
+    <% if current_user.auth_uid.nil? or @email_hmac.nil? or not current_user.errors[:email].empty? %>
+      <%= f.email_field :email, :help => t(".email_help_html",
+                                           :privacy_policy_link => link_to(t(".privacy_policy"),
+                                                                           t(".privacy_policy_url"),
+                                                                           :title => t(".privacy_policy_title"),
+                                                                           :target => :new)),
+                                :autofocus => true,
+                                :tabindex => 1 %>
+    <% else %>
+      <%= f.hidden_field :email %>
+    <% end %>
 
 
-  <div id="auth_prompt" class="form-row">
-    <%= link_to raw(t(".use external auth")), "#", :id => "auth_enable" %>
-  </div>
+    <%= f.text_field :display_name, :help => t(".display name description"), :tabindex => 2 %>
 
 
-  <%= submit_tag t('.continue'), :tabindex => 8 %>
-<% end %>
+    <% if current_user.auth_uid.nil? %>
+      <div class="row">
+        <div class="col-sm">
+          <%= f.password_field :pass_crypt, :tabindex => 3 %>
+        </div>
+        <div class="col-sm">
+          <%= f.password_field :pass_crypt_confirmation, :tabindex => 4 %>
+        </div>
+      </div>
+    <% end %>
+
+    <p class="mb-3 text-muted fs-6"><%= t(".by_signing_up_html",
+                                          :tou_link => link_to(t("layouts.tou"),
+                                                               "https://wiki.osmfoundation.org/wiki/Terms_of_Use",
+                                                               :target => :new),
+                                          :privacy_policy_link => link_to(t(".privacy_policy"),
+                                                                          t(".privacy_policy_url"),
+                                                                          :title => t(".privacy_policy_title"),
+                                                                          :target => :new),
+                                          :contributor_terms_link => link_to(t(".contributor_terms"),
+                                                                             t(".contributor_terms_url"),
+                                                                             :target => :new)) %></p>
+    <%= f.form_group do %>
+      <%= f.check_box :consider_pd,
+                      :tabindex => 5,
+                      :label => t(".consider_pd_html",
+                                  :consider_pd_link => link_to(t(".consider_pd"),
+                                                               t(".consider_pd_url"),
+                                                               :target => :new)) %>
+    <% end %>
 
 
-<div class='aside col6 deemphasize inner22'>
-  <h4><%= t '.about.header' %></h4>
-  <%= t '.about.html' %>
+    <div class="mb-3">
+      <%= submit_tag(t(".continue"), :name => "continue", :id => "continue", :class => "btn btn-primary", :tabindex => 6) %>
+    </div>
+  <% end %>
+
+  <% if current_user.auth_uid.nil? and @preferred_auth_provider.nil? %>
+    <div class="d-flex justify-content-center align-items-center">
+      <div class="border-bottom border-1 flex-grow-1"></div>
+      <div class="text-secondary mx-3"><%= t ".use external auth" %></div>
+      <div class="border-bottom border-1 flex-grow-1"></div>
+    </div>
+    <%= render :partial => "auth_providers" %>
+  <% end %>
 </div>
 </div>