mirror of
https://github.com/google/nomulus.git
synced 2025-04-30 12:07:51 +02:00
This fixes the build broken by [] ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=186782466
126 lines
3.4 KiB
JavaScript
126 lines
3.4 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.Console');
|
|
|
|
goog.require('goog.Disposable');
|
|
goog.require('goog.History');
|
|
goog.require('goog.dom');
|
|
goog.require('goog.events');
|
|
goog.require('goog.events.EventType');
|
|
goog.require('goog.events.KeyCodes');
|
|
goog.require('goog.history.EventType');
|
|
goog.require('registry.util');
|
|
|
|
goog.forwardDeclare('goog.events.KeyEvent');
|
|
goog.forwardDeclare('registry.Session');
|
|
|
|
|
|
|
|
/**
|
|
* Abstract console for both admin and registrar console UIs.
|
|
* @param {?registry.Session} session server request session.
|
|
* @constructor
|
|
* @extends {goog.Disposable}
|
|
*/
|
|
registry.Console = function(session) {
|
|
registry.Console.base(this, 'constructor');
|
|
|
|
/**
|
|
* @type {!goog.History}
|
|
* @protected
|
|
*/
|
|
this.history = new goog.History();
|
|
goog.events.listen(
|
|
this.history,
|
|
goog.history.EventType.NAVIGATE,
|
|
goog.bind(this.handleHashChange, this));
|
|
|
|
/**
|
|
* @type {?registry.Session} The server session.
|
|
*/
|
|
this.session = session;
|
|
|
|
this.bindToDom();
|
|
};
|
|
goog.inherits(registry.Console, goog.Disposable);
|
|
|
|
|
|
/**
|
|
* Helper to setup permanent page elements.
|
|
*/
|
|
registry.Console.prototype.bindToDom = function() {
|
|
registry.util.unbutter();
|
|
goog.events.listen(goog.dom.getRequiredElement('kd-searchbutton'),
|
|
goog.events.EventType.CLICK,
|
|
goog.bind(this.onSearch_, this));
|
|
goog.events.listen(goog.dom.getRequiredElement('kd-searchfield'),
|
|
goog.events.EventType.KEYUP,
|
|
goog.bind(this.onSearchFieldKeyUp_, this));
|
|
goog.events.listen(
|
|
goog.dom.getElementByClass(goog.getCssName('kd-butterbar-dismiss')),
|
|
goog.events.EventType.CLICK,
|
|
registry.util.unbutter);
|
|
};
|
|
|
|
|
|
/**
|
|
* Subclasses should override to visit the hash token given by
|
|
* `goog.History.getToken()`.
|
|
*/
|
|
registry.Console.prototype.handleHashChange = goog.abstractMethod;
|
|
|
|
|
|
/**
|
|
* @param {string} resourcePath Resource description path.
|
|
*/
|
|
registry.Console.prototype.view = function(resourcePath) {
|
|
this.history.setToken(resourcePath);
|
|
};
|
|
|
|
|
|
/**
|
|
* Handler for search bar.
|
|
* @private
|
|
*/
|
|
registry.Console.prototype.onSearch_ = function() {
|
|
var qElt = goog.dom.getRequiredElement('kd-searchfield');
|
|
if (qElt.getAttribute('disabled')) {
|
|
return;
|
|
}
|
|
var query = qElt.value;
|
|
if (query == '') {
|
|
return;
|
|
}
|
|
// Filtering this value change event.
|
|
qElt.setAttribute('disabled', true);
|
|
qElt.value = '';
|
|
this.view(query);
|
|
qElt.removeAttribute('disabled');
|
|
};
|
|
|
|
|
|
/**
|
|
* Handler for key press in the search input field.
|
|
* @param {!goog.events.KeyEvent} e Key event to handle.
|
|
* @return {boolean} Whether the event should be continued or cancelled.
|
|
* @private
|
|
*/
|
|
registry.Console.prototype.onSearchFieldKeyUp_ = function(e) {
|
|
if (e.keyCode == goog.events.KeyCodes.ENTER) {
|
|
this.onSearch_();
|
|
return false;
|
|
}
|
|
return true;
|
|
};
|