diff --git a/java/google/registry/ui/js/registrar/admin_settings.js b/java/google/registry/ui/js/registrar/admin_settings.js index bc26e102d..2c633ae94 100644 --- a/java/google/registry/ui/js/registrar/admin_settings.js +++ b/java/google/registry/ui/js/registrar/admin_settings.js @@ -54,12 +54,15 @@ registry.registrar.AdminSettings.prototype.bindToDom = function(id) { /** @override */ registry.registrar.AdminSettings.prototype.runAfterRender = function(objArgs) { - goog.events.listen( - goog.dom.getRequiredElement('btn-ote-status'), - goog.events.EventType.CLICK, - goog.bind( - this.oteStatusCheck_, this, objArgs.xsrfToken, objArgs.clientId), - false, this); + const oteButton = goog.dom.getElement('btn-ote-status'); + if (oteButton) { + goog.events.listen( + oteButton, + goog.events.EventType.CLICK, + goog.bind( + this.oteStatusCheck_, this, objArgs.xsrfToken, objArgs.clientId), + false, this); + } }; /** @override */ diff --git a/java/google/registry/ui/js/registrar/main.js b/java/google/registry/ui/js/registrar/main.js index 1bfbd7030..189f38d5b 100644 --- a/java/google/registry/ui/js/registrar/main.js +++ b/java/google/registry/ui/js/registrar/main.js @@ -36,11 +36,13 @@ goog.require('registry.registrar.Console'); * @param {string} announcementsEmail * @param {string} supportPhoneNumber * @param {string} technicalDocsUrl + * @param {string} environment * @export */ registry.registrar.main = function( xsrfToken, clientId, isAdmin, isOwner, productName, integrationEmail, - supportEmail, announcementsEmail, supportPhoneNumber, technicalDocsUrl) { + supportEmail, announcementsEmail, supportPhoneNumber, technicalDocsUrl, + environment) { const console = new registry.registrar.Console({ xsrfToken: xsrfToken, clientId: clientId, @@ -51,7 +53,8 @@ registry.registrar.main = function( supportEmail: supportEmail, announcementsEmail: announcementsEmail, supportPhoneNumber: supportPhoneNumber, - technicalDocsUrl: technicalDocsUrl + technicalDocsUrl: technicalDocsUrl, + environment: environment, }); console.setUp(); diff --git a/java/google/registry/ui/server/registrar/ConsoleUiAction.java b/java/google/registry/ui/server/registrar/ConsoleUiAction.java index 9cf74270f..7bdf601b1 100644 --- a/java/google/registry/ui/server/registrar/ConsoleUiAction.java +++ b/java/google/registry/ui/server/registrar/ConsoleUiAction.java @@ -35,6 +35,7 @@ import com.google.template.soy.data.SoyMapData; import com.google.template.soy.shared.SoyCssRenamingMap; import com.google.template.soy.tofu.SoyTofu; import google.registry.config.RegistryConfig.Config; +import google.registry.config.RegistryEnvironment; import google.registry.request.Action; import google.registry.request.Parameter; import google.registry.request.Response; @@ -76,6 +77,7 @@ public final class ConsoleUiAction implements Runnable { @Inject UserService userService; @Inject XsrfTokenManager xsrfTokenManager; @Inject AuthResult authResult; + @Inject RegistryEnvironment environment; @Inject @Config("logoFilename") String logoFilename; @Inject @Config("productName") String productName; @Inject @Config("integrationEmail") String integrationEmail; @@ -133,6 +135,7 @@ public final class ConsoleUiAction implements Runnable { data.put("xsrfToken", xsrfTokenManager.generateToken(user.getEmail())); ImmutableSetMultimap roleMap = registrarAccessor.getAllClientIdWithRoles(); data.put("allClientIds", roleMap.keySet()); + data.put("environment", environment.toString()); // We set the initual value to the value that will show if guessClientId throws. String clientId = ""; try { diff --git a/java/google/registry/ui/soy/registrar/AdminSettings.soy b/java/google/registry/ui/soy/registrar/AdminSettings.soy index 08c354348..98d3779f2 100644 --- a/java/google/registry/ui/soy/registrar/AdminSettings.soy +++ b/java/google/registry/ui/soy/registrar/AdminSettings.soy @@ -18,6 +18,7 @@ {template .settings} {@param allowedTlds: list} {@param type: string} // the registrar type, e.g. REAL, OTE, TEST, etc. + {@param environment: string} // the server environment e.g. PRODUCTION, SANDBOX

Administrator settings

@@ -42,16 +43,20 @@ class="{css('kd-button')} {css('btn-add')}">Add - - - - {call .oteStatus} - {param registrarType: $type /} - {/call} + {if $environment != 'PRODUCTION'} + + + + {/if} + {if $type == 'OTE'} + {call .oteStatus} + {param registrarType: $type /} + {/call} + {/if}
- - -

Generate new OT&E accounts here -

+ + +

Generate new OT&E accounts here +

diff --git a/java/google/registry/ui/soy/registrar/Console.soy b/java/google/registry/ui/soy/registrar/Console.soy index 4f5f5ecc8..acf83b3d5 100644 --- a/java/google/registry/ui/soy/registrar/Console.soy +++ b/java/google/registry/ui/soy/registrar/Console.soy @@ -34,6 +34,7 @@ {@param announcementsEmail: string} {@param supportPhoneNumber: string} {@param technicalDocsUrl: string} + {@param environment: string} {call registry.soy.console.header} {param app: 'registrar' /} @@ -82,7 +83,8 @@ {$supportEmail}, {$announcementsEmail}, {$supportPhoneNumber}, - {$technicalDocsUrl}); + {$technicalDocsUrl}, + {$environment}); {/if} {/template} diff --git a/javatests/google/registry/ui/js/registrar/console_test_util.js b/javatests/google/registry/ui/js/registrar/console_test_util.js index bf835c84f..ed30ca33a 100644 --- a/javatests/google/registry/ui/js/registrar/console_test_util.js +++ b/javatests/google/registry/ui/js/registrar/console_test_util.js @@ -60,6 +60,7 @@ registry.registrar.ConsoleTestUtil.renderConsoleMain = function( announcementsEmail: args.announcementsEmail || 'announcement@example.com', supportPhoneNumber: args.supportPhoneNumber || '+1 (888) 555 0123', technicalDocsUrl: args.technicalDocsUrl || 'http://example.com/techdocs', + environment: args.environment || 'UNITTEST', }); }; diff --git a/javatests/google/registry/ui/server/registrar/ConsoleUiActionTest.java b/javatests/google/registry/ui/server/registrar/ConsoleUiActionTest.java index e4147462a..29a6c389e 100644 --- a/javatests/google/registry/ui/server/registrar/ConsoleUiActionTest.java +++ b/javatests/google/registry/ui/server/registrar/ConsoleUiActionTest.java @@ -27,6 +27,7 @@ import com.google.appengine.api.users.User; import com.google.appengine.api.users.UserServiceFactory; import com.google.common.collect.ImmutableSetMultimap; import com.google.common.net.MediaType; +import google.registry.config.RegistryEnvironment; import google.registry.request.auth.AuthLevel; import google.registry.request.auth.AuthResult; import google.registry.request.auth.AuthenticatedRegistrarAccessor; @@ -78,6 +79,7 @@ public class ConsoleUiActionTest { action.paramClientId = Optional.empty(); AuthResult authResult = AuthResult.create(AuthLevel.USER, UserAuthInfo.create(user, false)); action.authResult = authResult; + action.environment = RegistryEnvironment.UNITTEST; action.registrarAccessor = AuthenticatedRegistrarAccessor.createForTesting( diff --git a/javatests/google/registry/webdriver/scuba_goldens/chrome-linux/RegistrarConsoleScreenshotTest_getOteStatus_noButtonWhenReal_result.png b/javatests/google/registry/webdriver/scuba_goldens/chrome-linux/RegistrarConsoleScreenshotTest_getOteStatus_noButtonWhenReal_result.png index d0e1471e7..e31c2e9bf 100644 Binary files a/javatests/google/registry/webdriver/scuba_goldens/chrome-linux/RegistrarConsoleScreenshotTest_getOteStatus_noButtonWhenReal_result.png and b/javatests/google/registry/webdriver/scuba_goldens/chrome-linux/RegistrarConsoleScreenshotTest_getOteStatus_noButtonWhenReal_result.png differ diff --git a/javatests/google/registry/webdriver/scuba_goldens/chrome-linux/RegistrarConsoleScreenshotTest_settingsAdmin_whenAdmin_edit.png b/javatests/google/registry/webdriver/scuba_goldens/chrome-linux/RegistrarConsoleScreenshotTest_settingsAdmin_whenAdmin_edit.png index f9fc87c6b..6390f6a1c 100644 Binary files a/javatests/google/registry/webdriver/scuba_goldens/chrome-linux/RegistrarConsoleScreenshotTest_settingsAdmin_whenAdmin_edit.png and b/javatests/google/registry/webdriver/scuba_goldens/chrome-linux/RegistrarConsoleScreenshotTest_settingsAdmin_whenAdmin_edit.png differ diff --git a/javatests/google/registry/webdriver/scuba_goldens/chrome-linux/RegistrarConsoleScreenshotTest_settingsAdmin_whenAdmin_view.png b/javatests/google/registry/webdriver/scuba_goldens/chrome-linux/RegistrarConsoleScreenshotTest_settingsAdmin_whenAdmin_view.png index 93885e59d..bb6b75df4 100644 Binary files a/javatests/google/registry/webdriver/scuba_goldens/chrome-linux/RegistrarConsoleScreenshotTest_settingsAdmin_whenAdmin_view.png and b/javatests/google/registry/webdriver/scuba_goldens/chrome-linux/RegistrarConsoleScreenshotTest_settingsAdmin_whenAdmin_view.png differ