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