mirror of
https://github.com/google/nomulus.git
synced 2025-07-30 06:26:30 +02:00
To support the open source community, which may want to use different analytics services, we implement a soy template for analytics services that: 1) Does not require users to implement Google Analytics 2) Allows users to add their own analytics code to `Analytics.soy` 3) Gives users the flexibility to pass as much or as little static configuration to their custom analytics code as needed. 4) Ensures that users can merge upstream Nomulus code in the future without having to delete their custom analytics implementations 5) Does not allow code to be injected from configuration, which Soy as a framework actively discourages. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=248340081
197 lines
7.4 KiB
Text
197 lines
7.4 KiB
Text
// Copyright 2018 The Nomulus Authors. All Rights Reserved.
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
{namespace registry.soy.registrar.otesetup}
|
|
|
|
|
|
/**
|
|
* Main page for the OT&E creation. Holds a form with the required data.
|
|
*/
|
|
{template .formPage}
|
|
{@param xsrfToken: string} /** Security token. */
|
|
{@param username: string} /** Arbitrary username to display. */
|
|
{@param logoutUrl: string} /** Generated URL for logging out of Google. */
|
|
{@param productName: string} /** Name to display for this software product. */
|
|
{@param analyticsConfig: [googleAnalyticsId: string|null]}
|
|
|
|
{@param logoFilename: string}
|
|
{@param? errorMessage: string} /** If set - display the error message above the form. */
|
|
{@param? baseClientId: string} /** If set - an initial value to fill for the base client ID. */
|
|
{@param? contactEmail: string} /** If set - an initial value to fill for the email. */
|
|
|
|
{call registry.soy.console.header}
|
|
{param app: 'registrar' /}
|
|
{param subtitle: 'OT&E setup' /}
|
|
{param analyticsConfig: $analyticsConfig /}
|
|
{/call}
|
|
{call registry.soy.console.googlebar data="all" /}
|
|
<div id="reg-content-and-footer">
|
|
<div id="reg-content">
|
|
<h1>Setup OT&E</h1>
|
|
{if isNonnull($errorMessage)}
|
|
<h2 class="{css('kd-errormessage')}">Failed: {$errorMessage}</h2>
|
|
{/if}
|
|
{call .form_ data="all" /}
|
|
</div>
|
|
{call registry.soy.console.footer /}
|
|
</div>
|
|
{/template}
|
|
|
|
|
|
/**
|
|
* Result page for a successful OT&E setup.
|
|
*/
|
|
{template .resultSuccess}
|
|
{@param baseClientId: string} /** The base clientId used for the OT&E setup. */
|
|
{@param contactEmail: string} /** The contact's email added to the registrars. */
|
|
{@param clientIdToTld: map<string, string>} /** The created registrars->TLD mapping. */
|
|
{@param password: string} /** The password given for the created registrars. */
|
|
{@param username: string} /** Arbitrary username to display. */
|
|
{@param logoutUrl: string} /** Generated URL for logging out of Google. */
|
|
{@param productName: string} /** Name to display for this software product. */
|
|
{@param logoFilename: string}
|
|
{@param analyticsConfig: [googleAnalyticsId: string|null]}
|
|
|
|
{call registry.soy.console.header}
|
|
{param app: 'registrar' /}
|
|
{param subtitle: 'OT&E setup' /}
|
|
{param analyticsConfig: $analyticsConfig /}
|
|
{/call}
|
|
{call registry.soy.console.googlebar data="all" /}
|
|
<div id="reg-content-and-footer">
|
|
<div id="reg-content" class="{css('item')} {css('registrar')}">
|
|
<h1>OT&E successfully created for registrar {$baseClientId}!</h1>
|
|
<table>
|
|
<tr>
|
|
<td>
|
|
<label class="{css('setting-label')}">EPP credentials</label>
|
|
<span class="{css('description')}">Copy and paste this into an email to the registrars</span>
|
|
</td>
|
|
<td class="{css('setting')}">
|
|
<textarea rows="7" cols="100" spellcheck="false" readonly>
|
|
{for $clientId in mapKeys($clientIdToTld)}
|
|
Login: {$clientId}{sp}{sp}{sp}{sp}{sp}{sp}
|
|
Password: {$password}{sp}{sp}{sp}{sp}{sp}{sp}
|
|
TLD: {$clientIdToTld[$clientId]}{sp}{sp}{sp}{sp}{sp}{sp}{\n}
|
|
{/for}
|
|
</textarea>
|
|
</td>
|
|
</table>
|
|
Gave <label>{$contactEmail}</label> web-console access to these registrars.
|
|
<h1>Don't forget to set the <label>Certificate</label> and <label>IP-whitelist</label> for these Registrars!</h1>
|
|
Links to the security page for your convenience:<br>
|
|
{for $clientId in mapKeys($clientIdToTld)}
|
|
<a href="/registrar?clientId={$clientId}#security-settings" target="_blank">{$clientId}</a><br>
|
|
{/for}
|
|
</div>
|
|
{call registry.soy.console.footer /}
|
|
</div>
|
|
{/template}
|
|
|
|
|
|
/** Form for getting registrar info. */
|
|
{template .form_ visibility="private"}
|
|
{@param xsrfToken: string} /** Security token. */
|
|
{@param? baseClientId: string} /** If set - an initial value to fill for the base client ID. */
|
|
{@param? contactEmail: string} /** If set - an initial value to fill for the email. */
|
|
|
|
<form name="item" class="{css('item')}" method="post" action="/registrar-ote-setup">
|
|
<table>
|
|
<tr class="{css('kd-settings-pane-section')}">
|
|
<td>
|
|
{call registry.soy.forms.inputFieldLabel}
|
|
{param label: 'Base client ID' /}
|
|
{/call}
|
|
</td>
|
|
<td class="{css('setting')}">
|
|
{call registry.soy.forms.inputFieldValue }
|
|
{param name: 'clientId' /}
|
|
{param value: $baseClientId /}
|
|
{param placeholder: 'registrar\'s ID' /}
|
|
{param required: true /}
|
|
{/call}
|
|
<span class="{css('description')}">
|
|
Must consist of 3-14 lower-case letters and numbers.
|
|
</span>
|
|
</td>
|
|
</tr>
|
|
{call registry.soy.forms.inputFieldRowWithValue}
|
|
{param label: 'Contact email' /}
|
|
{param name: 'email' /}
|
|
{param value: $contactEmail /}
|
|
{param placeholder: 'registrar\'s assigned email' /}
|
|
{param description kind="text"}
|
|
Will be granted web-console access to the OTE registrars.
|
|
{/param}
|
|
{param required: true /}
|
|
{/call}
|
|
<tr>
|
|
<td colspan="2">
|
|
<hr>
|
|
<h1>Optional fields</h1>
|
|
Don't fill unless you have a good reason to.
|
|
</td>
|
|
</tr>
|
|
{call registry.soy.forms.inputFieldRowWithValue}
|
|
{param label: 'EPP password' /}
|
|
{param name: 'password' /}
|
|
{param placeholder: 'Optional' /}
|
|
{param description kind="text"}
|
|
The password used to for EPP login. Leave blank to auto-generate.
|
|
{/param}
|
|
{/call}
|
|
{call registry.soy.forms.submitRow}
|
|
{param label: 'create' /}
|
|
{/call}
|
|
</table>
|
|
<input type="hidden" name="xsrfToken" value="{$xsrfToken}">
|
|
</form>
|
|
{/template}
|
|
|
|
|
|
/**
|
|
* Who goes thar?!
|
|
*/
|
|
{template .whoareyou}
|
|
{@param username: string} /** Arbitrary username to display. */
|
|
{@param logoutUrl: string} /** Generated URL for logging out of Google. */
|
|
{@param logoFilename: string}
|
|
{@param productName: string}
|
|
{@param analyticsConfig: [googleAnalyticsId: string|null]}
|
|
|
|
{call registry.soy.console.header}
|
|
{param app: 'registrar' /}
|
|
{param subtitle: 'Not Authorized' /}
|
|
{param analyticsConfig: $analyticsConfig /}
|
|
{/call}
|
|
<div class="{css('whoAreYou')}">
|
|
<a class="{css('logo')}" href="/registrar">
|
|
<img src="/assets/images/{$logoFilename}" alt="{$productName}">
|
|
</a>
|
|
<h1>You need permission</h1>
|
|
<p>
|
|
Only {$productName} Admins have access to this page.
|
|
You are signed in as <strong>{$username}</strong>.
|
|
<div>
|
|
<a href="{$logoutUrl}"
|
|
class="{css('kd-button')} {css('kd-button-submit')}"
|
|
tabindex="-1">Logout and switch to another account</a>{sp}
|
|
<a href="/registrar"
|
|
class="{css('kd-button')} {css('kd-button-submit')}"
|
|
tabindex="-1">Go to the Registrar web console</a>
|
|
</div>
|
|
</div>
|
|
{/template}
|
|
|
|
|