From 794743c7bcdbdab4c245f86293c0a87f6e6ae251 Mon Sep 17 00:00:00 2001 From: nickfelt Date: Wed, 5 Apr 2017 14:03:20 -0700 Subject: [PATCH] Fix registrar console to show type-less registrar contacts RegistrarContacts are allowed to have no "types" specified (they can also have multiple types). However, the registrar console displays the contacts for the logged-in registrar grouped by type into sections, and contacts with no type were simply being omitted from the listing, which was confusing because you can't even log into the console unless your email is listed as a contact, and yet you might then visit the contact settings page and see (apparently) no configured contacts. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=152302159 --- java/google/registry/ui/js/registrar/contact_settings.js | 4 +++- java/google/registry/ui/soy/registrar/ContactSettings.soy | 3 ++- .../google/registry/ui/js/registrar/contact_settings_test.js | 5 ++++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/java/google/registry/ui/js/registrar/contact_settings.js b/java/google/registry/ui/js/registrar/contact_settings.js index 5b0c8444f..c5daf2844 100644 --- a/java/google/registry/ui/js/registrar/contact_settings.js +++ b/java/google/registry/ui/js/registrar/contact_settings.js @@ -115,7 +115,9 @@ registry.registrar.ContactSettings.prototype.renderItem = function(rspObj) { var contact = contacts[c]; var types = contact.types; if (!types) { - continue; + // If the contact has no types, synthesize an "OTHER" type so that it + // still will be displayed in the console. + types = 'OTHER'; } types = types.split(','); for (var t in types) { diff --git a/java/google/registry/ui/soy/registrar/ContactSettings.soy b/java/google/registry/ui/soy/registrar/ContactSettings.soy index d61e9b42c..2edb2d69f 100644 --- a/java/google/registry/ui/soy/registrar/ContactSettings.soy +++ b/java/google/registry/ui/soy/registrar/ContactSettings.soy @@ -25,7 +25,8 @@ ['legal', 'Legal', 'Contact for all legal communications.'], ['marketing', 'Marketing', 'Contact for registry promotions and campaigns.'], ['abuse', 'Abuse', 'Contact for abuse complaints.'], - ['whois', 'WHOIS-Inquiry', 'Contact for inquiries about WHOIS accuracy.']] /} + ['whois', 'WHOIS-Inquiry', 'Contact for inquiries about WHOIS accuracy.'], + ['other', 'Other', 'Contact that is none of the above types']] /}

Contact settings

diff --git a/javatests/google/registry/ui/js/registrar/contact_settings_test.js b/javatests/google/registry/ui/js/registrar/contact_settings_test.js index 856dc2495..6160bba5d 100644 --- a/javatests/google/registry/ui/js/registrar/contact_settings_test.js +++ b/javatests/google/registry/ui/js/registrar/contact_settings_test.js @@ -73,6 +73,8 @@ function tearDown() { function testCollectionView() { + testContactWithoutType = createTestContact('notype@example.com'); + testContactWithoutType.types = ''; registry.registrar.ConsoleTestUtil.visit(test, { path: 'contact-settings', xsrfToken: test.testXsrfToken, @@ -86,11 +88,12 @@ function testCollectionView() { status: 'SUCCESS', message: 'OK', results: [{ - contacts: [testContact] + contacts: [testContact, testContactWithoutType] }] } ); assertEquals(1, $('admin-contacts').childNodes.length); + assertEquals(1, $('other-contacts').childNodes.length); // XXX: Needs more field testing. }