Pass name/email/phone info to the new console front end (#2180)

This commit is contained in:
gbrodman 2023-10-16 16:51:35 -04:00 committed by GitHub
parent 4f53ae0e89
commit 779da518df
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 49 additions and 13 deletions

View file

@ -5,21 +5,23 @@
<mat-icon class="console-app__widget-icon">call</mat-icon>
<h1 class="console-app__widget-title">Contact Support</h1>
<h4 class="secondary-text text-center">
View Google Registry support email and phone information
Let us know if you have any questions
</h4>
</div>
<div class="console-app__widget_right">
<button mat-button color="primary" class="console-app__widget-link">
Give us a Call
</button>
<div class="console-app__widget-section-header">Give us a Call</div>
<p class="secondary-text">
Call Google Registry support at <b>+1 (404) 978 8419</b>
Call {{ userDataService.userData?.productName }} support at
<a href="tel:{{ userDataService.userData?.supportPhoneNumber }}">{{
userDataService.userData?.supportPhoneNumber
}}</a>
</p>
<button mat-button color="primary" class="console-app__widget-link">
Send us an Email
</button>
<div class="console-app__widget-section-header">Send us an Email</div>
<p class="secondary-text">
Email Google Registry at <b>support@google.com</b>
Email {{ userDataService.userData?.productName }} at
<a href="mailto:{{ userDataService.userData?.supportEmail }}">{{
userDataService.userData?.supportEmail
}}</a>
</p>
</div>
</div>

View file

@ -13,11 +13,12 @@
// limitations under the License.
import { Component } from '@angular/core';
import { UserDataService } from 'src/app/shared/services/userData.service';
@Component({
selector: '[app-contact-widget]',
templateUrl: './contact-widget.component.html',
})
export class ContactWidgetComponent {
constructor() {}
constructor(public userDataService: UserDataService) {}
}

View file

@ -19,8 +19,11 @@ import { MatSnackBar } from '@angular/material/snack-bar';
import { GlobalLoader, GlobalLoaderService } from './globalLoader.service';
export interface UserData {
isAdmin: boolean;
globalRole: string;
isAdmin: boolean;
productName: string;
supportEmail: string;
supportPhoneNumber: string;
technicalDocsUrl: string;
}

View file

@ -47,6 +47,10 @@ body {
min-width: auto !important;
height: min-content !important;
}
&-section-header {
font-weight: 500;
color: var(--primary) !important;
}
&-title {
color: var(--primary) !important;
text-align: center;

View file

@ -40,15 +40,24 @@ public class ConsoleUserDataAction implements JsonGetAction {
private final AuthResult authResult;
private final Response response;
private final String productName;
private final String supportPhoneNumber;
private final String supportEmail;
private final String technicalDocsUrl;
@Inject
public ConsoleUserDataAction(
AuthResult authResult,
Response response,
@Config("productName") String productName,
@Config("supportEmail") String supportEmail,
@Config("supportPhoneNumber") String supportPhoneNumber,
@Config("technicalDocsUrl") String technicalDocsUrl) {
this.response = response;
this.authResult = authResult;
this.productName = productName;
this.supportEmail = supportEmail;
this.supportPhoneNumber = supportPhoneNumber;
this.technicalDocsUrl = technicalDocsUrl;
}
@ -74,6 +83,10 @@ public class ConsoleUserDataAction implements JsonGetAction {
// auth checks.
"isAdmin", user.getUserRoles().isAdmin(),
"globalRole", user.getUserRoles().getGlobalRole(),
// Include static contact resources in this call to minimize round trips
"productName", productName,
"supportEmail", supportEmail,
"supportPhoneNumber", supportPhoneNumber,
// Is used by UI to construct a link to registry resources
"technicalDocsUrl", technicalDocsUrl));

View file

@ -54,7 +54,19 @@ class ConsoleUserDataActionTest {
assertThat(response.getStatus()).isEqualTo(HttpStatusCodes.STATUS_CODE_OK);
Map jsonObject = GSON.fromJson(response.getPayload(), Map.class);
assertThat(jsonObject)
.containsExactly("isAdmin", false, "technicalDocsUrl", "test", "globalRole", "FTE");
.containsExactly(
"isAdmin",
false,
"technicalDocsUrl",
"test",
"globalRole",
"FTE",
"productName",
"Nomulus",
"supportPhoneNumber",
"+1 (212) 867 5309",
"supportEmail",
"support@example.com");
}
@Test
@ -71,6 +83,7 @@ class ConsoleUserDataActionTest {
}
private ConsoleUserDataAction createAction(AuthResult authResult) throws IOException {
return new ConsoleUserDataAction(authResult, response, "test");
return new ConsoleUserDataAction(
authResult, response, "Nomulus", "support@example.com", "+1 (212) 867 5309", "test");
}
}