diff --git a/core/src/main/javascript/google/registry/ui/js/registrar/contact_settings.js b/core/src/main/javascript/google/registry/ui/js/registrar/contact_settings.js index 03bdd2307..81e602582 100644 --- a/core/src/main/javascript/google/registry/ui/js/registrar/contact_settings.js +++ b/core/src/main/javascript/google/registry/ui/js/registrar/contact_settings.js @@ -106,6 +106,7 @@ registry.registrar.ContactSettings.prototype.renderItem = function(rspObj) { registryLockAllowedForRegistrar: rspObj.registryLockAllowed }); this.setupAppbar(); + this.setupPasswordElemIfNecessary_(targetContactNdx); } else { var contactsByType = {}; for (var c in contacts) { @@ -251,3 +252,26 @@ registry.registrar.ContactSettings.prototype.handleDeleteResponse = } return rsp; }; + +// Show or hide the password based on what the user chooses +registry.registrar.ContactSettings.prototype.setupPasswordElemIfNecessary_ = + function(contactIndex) { + var showOrHidePasswordButton = goog.dom.getElement('showOrHideRegistryLockPassword') + var showOrHidePassword = function() { + var inputElement = goog.dom.getRequiredElement( + 'contacts[' + contactIndex + '].registryLockPassword') + var type = inputElement.getAttribute('type') + if (type === 'password') { + showOrHidePasswordButton.text = 'Hide password'; + inputElement.setAttribute('type', 'text'); + } else { + showOrHidePasswordButton.text = 'Show password'; + inputElement.setAttribute('type', 'password'); + } + }; + + if (showOrHidePasswordButton != null) { + goog.events.listen(showOrHidePasswordButton, + goog.events.EventType.CLICK, showOrHidePassword, false, this); + } +}; diff --git a/core/src/main/resources/google/registry/ui/soy/registrar/ContactSettings.soy b/core/src/main/resources/google/registry/ui/soy/registrar/ContactSettings.soy index 15ea07132..7ede982f9 100644 --- a/core/src/main/resources/google/registry/ui/soy/registrar/ContactSettings.soy +++ b/core/src/main/resources/google/registry/ui/soy/registrar/ContactSettings.soy @@ -260,6 +260,15 @@ {param isPassword: true /} {param placeholder: $placeholder /} {/call} + {if $item['allowedToSetRegistryLockPassword']} + + + + Show password + + + {/if} + {/if} { diff --git a/core/src/test/resources/google/registry/webdriver/goldens/chrome-linux/RegistrarConsoleScreenshotTest_settingsContactEdit_setRegistryLockPassword_contactview.png b/core/src/test/resources/google/registry/webdriver/goldens/chrome-linux/RegistrarConsoleScreenshotTest_settingsContactEdit_setRegistryLockPassword_contact_view.png similarity index 100% rename from core/src/test/resources/google/registry/webdriver/goldens/chrome-linux/RegistrarConsoleScreenshotTest_settingsContactEdit_setRegistryLockPassword_contactview.png rename to core/src/test/resources/google/registry/webdriver/goldens/chrome-linux/RegistrarConsoleScreenshotTest_settingsContactEdit_setRegistryLockPassword_contact_view.png diff --git a/core/src/test/resources/google/registry/webdriver/goldens/chrome-linux/RegistrarConsoleScreenshotTest_settingsContactEdit_setRegistryLockPassword_page.png b/core/src/test/resources/google/registry/webdriver/goldens/chrome-linux/RegistrarConsoleScreenshotTest_settingsContactEdit_setRegistryLockPassword_page_with_password.png similarity index 51% rename from core/src/test/resources/google/registry/webdriver/goldens/chrome-linux/RegistrarConsoleScreenshotTest_settingsContactEdit_setRegistryLockPassword_page.png rename to core/src/test/resources/google/registry/webdriver/goldens/chrome-linux/RegistrarConsoleScreenshotTest_settingsContactEdit_setRegistryLockPassword_page_with_password.png index 588e32144..b11685266 100644 Binary files a/core/src/test/resources/google/registry/webdriver/goldens/chrome-linux/RegistrarConsoleScreenshotTest_settingsContactEdit_setRegistryLockPassword_page.png and b/core/src/test/resources/google/registry/webdriver/goldens/chrome-linux/RegistrarConsoleScreenshotTest_settingsContactEdit_setRegistryLockPassword_page_with_password.png differ diff --git a/core/src/test/resources/google/registry/webdriver/goldens/chrome-linux/RegistrarConsoleScreenshotTest_settingsContactEdit_setRegistryLockPassword_page_with_password_after_hide.png b/core/src/test/resources/google/registry/webdriver/goldens/chrome-linux/RegistrarConsoleScreenshotTest_settingsContactEdit_setRegistryLockPassword_page_with_password_after_hide.png new file mode 100644 index 000000000..08dc73f87 Binary files /dev/null and b/core/src/test/resources/google/registry/webdriver/goldens/chrome-linux/RegistrarConsoleScreenshotTest_settingsContactEdit_setRegistryLockPassword_page_with_password_after_hide.png differ diff --git a/core/src/test/resources/google/registry/webdriver/goldens/chrome-linux/RegistrarConsoleScreenshotTest_settingsContactEdit_setRegistryLockPassword_page_with_shown_password.png b/core/src/test/resources/google/registry/webdriver/goldens/chrome-linux/RegistrarConsoleScreenshotTest_settingsContactEdit_setRegistryLockPassword_page_with_shown_password.png new file mode 100644 index 000000000..77c3e0af1 Binary files /dev/null and b/core/src/test/resources/google/registry/webdriver/goldens/chrome-linux/RegistrarConsoleScreenshotTest_settingsContactEdit_setRegistryLockPassword_page_with_shown_password.png differ