mirror of
https://github.com/google/nomulus.git
synced 2025-05-13 16:07:15 +02:00
This tab will set the "allowedTlds", but might have other functionality in the future. It is based on (branches from) the security-settings tab, because I'm copying the functionality of the "whitelisted IPs" to the "allowed TLDs": they are both lists of "arbitrary" strings that you can remove from and add to. There are a lot of moving parts in this CL, because of how all the different elements need to interact, and how intertwined they are (for example, we need to disable the admin-settings view for non admins both in the soy and in the JS code) It's really time to refactor the console given all we've learned... :/ ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=220373443
106 lines
3.6 KiB
JavaScript
106 lines
3.6 KiB
JavaScript
// Copyright 2017 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.
|
|
|
|
goog.provide('registry.registrar.SecuritySettings');
|
|
|
|
goog.require('goog.array');
|
|
goog.require('goog.dom');
|
|
goog.require('goog.dom.classlist');
|
|
goog.require('goog.events');
|
|
goog.require('goog.events.EventType');
|
|
goog.require('goog.soy');
|
|
goog.require('registry.Resource');
|
|
goog.require('registry.ResourceComponent');
|
|
goog.require('registry.soy.registrar.security');
|
|
|
|
goog.forwardDeclare('registry.registrar.Console');
|
|
|
|
|
|
|
|
/**
|
|
* Security Settings page.
|
|
* @param {!registry.registrar.Console} console
|
|
* @param {!registry.Resource} resource the RESTful resource for the registrar.
|
|
* @constructor
|
|
* @extends {registry.ResourceComponent}
|
|
* @final
|
|
*/
|
|
registry.registrar.SecuritySettings = function(console, resource) {
|
|
registry.registrar.SecuritySettings.base(
|
|
this, 'constructor', console, resource,
|
|
registry.soy.registrar.security.settings, null);
|
|
};
|
|
goog.inherits(registry.registrar.SecuritySettings, registry.ResourceComponent);
|
|
|
|
|
|
/** @override */
|
|
registry.registrar.SecuritySettings.prototype.bindToDom = function(id) {
|
|
registry.registrar.SecuritySettings.base(this, 'bindToDom', 'fake');
|
|
goog.dom.removeNode(goog.dom.getRequiredElement('reg-app-btn-back'));
|
|
};
|
|
|
|
|
|
/** @override */
|
|
registry.registrar.SecuritySettings.prototype.setupEditor =
|
|
function(objArgs) {
|
|
goog.dom.classlist.add(goog.dom.getRequiredElement('ips'),
|
|
goog.getCssName('editing'));
|
|
var ips = goog.dom.getElementsByClass(goog.getCssName('ip'),
|
|
goog.dom.getRequiredElement('ips'));
|
|
goog.array.forEach(ips, function(ip) {
|
|
var remBtn = goog.dom.getChildren(ip)[0];
|
|
goog.events.listen(remBtn,
|
|
goog.events.EventType.CLICK,
|
|
goog.bind(this.onIpRemove_, this, remBtn));
|
|
}, this);
|
|
this.typeCounts['reg-ips'] = objArgs.ipAddressWhitelist ?
|
|
objArgs.ipAddressWhitelist.length : 0;
|
|
|
|
goog.events.listen(goog.dom.getRequiredElement('btn-add-ip'),
|
|
goog.events.EventType.CLICK,
|
|
this.onIpAdd_,
|
|
false,
|
|
this);
|
|
};
|
|
|
|
|
|
/**
|
|
* Click handler for IP add button.
|
|
* @private
|
|
*/
|
|
registry.registrar.SecuritySettings.prototype.onIpAdd_ = function() {
|
|
var ipInputElt = goog.dom.getRequiredElement('newIp');
|
|
var ipElt = goog.soy.renderAsFragment(registry.soy.registrar.security.ip, {
|
|
name: 'ipAddressWhitelist[' + this.typeCounts['reg-ips'] + ']',
|
|
ip: ipInputElt.value
|
|
});
|
|
goog.dom.appendChild(goog.dom.getRequiredElement('ips'), ipElt);
|
|
var remBtn = goog.dom.getFirstElementChild(ipElt);
|
|
goog.dom.classlist.remove(remBtn, goog.getCssName('hidden'));
|
|
goog.events.listen(remBtn, goog.events.EventType.CLICK,
|
|
goog.bind(this.onIpRemove_, this, remBtn));
|
|
this.typeCounts['reg-ips']++;
|
|
ipInputElt.value = '';
|
|
};
|
|
|
|
|
|
/**
|
|
* Click handler for IP remove button.
|
|
* @param {!Element} remBtn The remove button.
|
|
* @private
|
|
*/
|
|
registry.registrar.SecuritySettings.prototype.onIpRemove_ =
|
|
function(remBtn) {
|
|
goog.dom.removeNode(goog.dom.getParentElement(remBtn));
|
|
};
|