diff --git a/app/assets/javascripts/managers.js b/app/assets/javascripts/managers.js index 78774bb29..2926c8e0a 100644 --- a/app/assets/javascripts/managers.js +++ b/app/assets/javascripts/managers.js @@ -39,14 +39,13 @@ e.stopPropagation(); $("#user_password").val(App.Managers.generatePassword()); }); - $(".show-password").on("click", function(e) { - e.preventDefault(); - e.stopPropagation(); + $(".show-password").on("click", function() { if ($("#user_password").is("input[type='password']")) { App.Managers.togglePassword("text"); } else { App.Managers.togglePassword("password"); } + $(this).attr("aria-pressed", !JSON.parse($(this).attr("aria-pressed"))); }); } }; diff --git a/app/assets/stylesheets/management/account/edit_password_manually.scss b/app/assets/stylesheets/management/account/edit_password_manually.scss index 6b5613e36..4d8aaa3ce 100644 --- a/app/assets/stylesheets/management/account/edit_password_manually.scss +++ b/app/assets/stylesheets/management/account/edit_password_manually.scss @@ -3,4 +3,8 @@ [type=text] { margin-bottom: 0 !important; } + + .show-password { + cursor: pointer; + } } diff --git a/app/components/management/account/edit_password_manually_component.html.erb b/app/components/management/account/edit_password_manually_component.html.erb index c59848e62..9887cbcac 100644 --- a/app/components/management/account/edit_password_manually_component.html.erb +++ b/app/components/management/account/edit_password_manually_component.html.erb @@ -10,10 +10,10 @@
<%= f.password_field :password, class: "input-group-field", label: false, value: nil %> - +
diff --git a/spec/system/management/account_spec.rb b/spec/system/management/account_spec.rb index b2d219de0..100c3502c 100644 --- a/spec/system/management/account_spec.rb +++ b/spec/system/management/account_spec.rb @@ -60,14 +60,17 @@ describe "Account" do new_password = find_field("user_password").value expect(page).to have_field "Password", type: :password + expect(page).to have_css "button[aria-pressed=false]", exact_text: "Show password" - click_link "Show password" + click_button "Show password" expect(page).to have_field "Password", type: :text + expect(page).to have_css "button[aria-pressed=true]", exact_text: "Show password" - click_link "Show password" + click_button "Show password" expect(page).to have_field "Password", type: :password + expect(page).to have_css "button[aria-pressed=false]", exact_text: "Show password" click_button "Save password"