]> git.openstreetmap.org Git - rails.git/commitdiff
Convert password reset forms to use bootstrap
authorTom Hughes <tom@compton.nu>
Thu, 3 Sep 2020 22:53:57 +0000 (23:53 +0100)
committerTom Hughes <tom@compton.nu>
Thu, 3 Sep 2020 23:36:43 +0000 (00:36 +0100)
app/controllers/users_controller.rb
app/views/users/lost_password.html.erb
app/views/users/reset_password.html.erb
config/locales/en.yml
test/controllers/users_controller_test.rb

index b3596b376634d84341046ad304d56b550f48b57a..aa115a2282fee7b3072f73f46b07cb94fe7f3f6b 100644 (file)
@@ -146,11 +146,11 @@ class UsersController < ApplicationController
   def lost_password
     @title = t "users.lost_password.title"
 
-    if params[:user] && params[:user][:email]
-      user = User.visible.find_by(:email => params[:user][:email])
+    if params[:email]
+      user = User.visible.find_by(:email => params[:email])
 
       if user.nil?
-        users = User.visible.where("LOWER(email) = LOWER(?)", params[:user][:email])
+        users = User.visible.where("LOWER(email) = LOWER(?)", params[:email])
 
         user = users.first if users.count == 1
       end
index 3cfd8cc83f88dcbf929c17fcbf90ba1656453541..dfcaf32bef6aaf4aee5d476dc24001da1e08b534 100644 (file)
@@ -4,10 +4,7 @@
 
 <p><%= t ".help_text" %></p>
 
-<%= form_tag :action => "lost_password" do %>
-  <div class="standard-form">
-    <label class="standard-label"><%= t ".email address" %></label>
-    <%= text_field("user", "email", :tabindex => 1) %>
-    <%= submit_tag t(".new password button"), :tabindex => 2 %>
-  </div>
+<%= bootstrap_form_tag do |f| %>
+  <%= f.text_field :email, :label => t(".email address") %>
+  <%= f.primary t(".new password button") %>
 <% end %>
index 6290cca969ba36898959656ffcf41623b604e47e..99f07cab6d6bff7dda0ac74e11e6545a85c43ae2 100644 (file)
@@ -2,19 +2,9 @@
   <h1><%= t ".heading", :user => current_user.display_name %></h1>
 <% end %>
 
-<%= error_messages_for current_user %>
-
-<%= form_tag do %>
-<%= hidden_field_tag(:token, params[:token]) %>
-  <div class="standard-form">
-    <fieldset>
-      <label class="standard-label"><%= t ".password" %></label>
-      <%= password_field(:user, :pass_crypt, :value => "", :tabindex => 4) %>
-    </fieldset>
-    <fieldset>
-      <label class="standard-label"><%= t ".confirm password" %></label>
-      <%= password_field(:user, :pass_crypt_confirmation, :value => "", :tabindex => 5) %>
-    </fieldset>
-    <%= submit_tag t(".reset"), :tabindex => 6 %>
-  </div>
+<%= bootstrap_form_for current_user, :url => { :action => "reset_password" }, :html => { :method => :post } do |f| %>
+  <%= f.hidden_field :token, :name => "token", :value => params[:token] %>
+  <%= f.password_field :pass_crypt, :value => "" %>
+  <%= f.password_field :pass_crypt_confirmation, :value => "" %>
+  <%= f.primary t(".reset") %>
 <% end %>
index 44501aa10ea6fb72ff031d8780d8dfd2571d97d9..997500b3d8ab36734e3f66b7b291044f0768c4cf 100644 (file)
@@ -126,6 +126,7 @@ en:
         description: "Description"
         languages: "Languages"
         pass_crypt: "Password"
+        pass_crypt_confirmation: "Confirm Password"
     help:
       trace:
         tagstring: comma delimited
@@ -2257,8 +2258,6 @@ en:
     reset_password:
       title: "Reset password"
       heading: "Reset Password for %{user}"
-      password: "Password:"
-      confirm password: "Confirm Password:"
       reset: "Reset Password"
       flash changed: "Your password has been changed."
       flash token bad: "Did not find that token, check the URL maybe?"
index 1cd9c5ddaf6feb9aa97a42e09c5c8fd642cc4f04..bffcfe5bde6f0b11c58d0bd39d25dc9181668e6f 100644 (file)
@@ -814,7 +814,7 @@ class UsersControllerTest < ActionDispatch::IntegrationTest
 
     assert_difference "ActionMailer::Base.deliveries.size", 1 do
       perform_enqueued_jobs do
-        post user_forgot_password_path, :params => { :user => { :email => user.email } }
+        post user_forgot_password_path, :params => { :email => user.email }
       end
     end
     assert_response :redirect
@@ -829,7 +829,7 @@ class UsersControllerTest < ActionDispatch::IntegrationTest
     # that has the same address in a different case
     assert_difference "ActionMailer::Base.deliveries.size", 1 do
       perform_enqueued_jobs do
-        post user_forgot_password_path, :params => { :user => { :email => user.email.upcase } }
+        post user_forgot_password_path, :params => { :email => user.email.upcase }
       end
     end
     assert_response :redirect
@@ -844,7 +844,7 @@ class UsersControllerTest < ActionDispatch::IntegrationTest
     # for more than one user but not an exact match for either
     assert_no_difference "ActionMailer::Base.deliveries.size" do
       perform_enqueued_jobs do
-        post user_forgot_password_path, :params => { :user => { :email => user.email.titlecase } }
+        post user_forgot_password_path, :params => { :email => user.email.titlecase }
       end
     end
     assert_response :success
@@ -856,7 +856,7 @@ class UsersControllerTest < ActionDispatch::IntegrationTest
     third_user = create(:user)
     assert_difference "ActionMailer::Base.deliveries.size", 1 do
       perform_enqueued_jobs do
-        post user_forgot_password_path, :params => { :user => { :email => third_user.email } }
+        post user_forgot_password_path, :params => { :email => third_user.email }
       end
     end
     assert_response :redirect
@@ -871,7 +871,7 @@ class UsersControllerTest < ActionDispatch::IntegrationTest
     # same (case insensitively unique) address in a different case
     assert_difference "ActionMailer::Base.deliveries.size", 1 do
       perform_enqueued_jobs do
-        post user_forgot_password_path, :params => { :user => { :email => third_user.email.upcase } }
+        post user_forgot_password_path, :params => { :email => third_user.email.upcase }
       end
     end
     assert_response :redirect
@@ -906,7 +906,7 @@ class UsersControllerTest < ActionDispatch::IntegrationTest
     post user_reset_password_path, :params => { :token => token.token, :user => { :pass_crypt => "new_password", :pass_crypt_confirmation => "different_password" } }
     assert_response :success
     assert_template :reset_password
-    assert_select "div#errorExplanation"
+    assert_select "div.invalid-feedback"
 
     # Test setting a new password
     post user_reset_password_path, :params => { :token => token.token, :user => { :pass_crypt => "new_password", :pass_crypt_confirmation => "new_password" } }