| Index: chrome/browser/resources/options2/alert_overlay.js
|
| diff --git a/chrome/browser/resources/options2/alert_overlay.js b/chrome/browser/resources/options2/alert_overlay.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..eb1fb8e80aeb09095beeeb413a2b975bfd78d037
|
| --- /dev/null
|
| +++ b/chrome/browser/resources/options2/alert_overlay.js
|
| @@ -0,0 +1,144 @@
|
| +// Copyright (c) 2010 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +cr.define('options', function() {
|
| + var OptionsPage = options.OptionsPage;
|
| +
|
| + /**
|
| + * AlertOverlay class
|
| + * Encapsulated handling of a generic alert.
|
| + * @class
|
| + */
|
| + function AlertOverlay() {
|
| + OptionsPage.call(this, 'alertOverlay', '', 'alertOverlay');
|
| + }
|
| +
|
| + cr.addSingletonGetter(AlertOverlay);
|
| +
|
| + AlertOverlay.prototype = {
|
| + // Inherit AlertOverlay from OptionsPage.
|
| + __proto__: OptionsPage.prototype,
|
| +
|
| + /**
|
| + * Whether the page can be shown. Used to make sure the page is only
|
| + * shown via AlertOverlay.Show(), and not via the address bar.
|
| + * @private
|
| + */
|
| + canShow_: false,
|
| +
|
| + /**
|
| + * Initialize the page.
|
| + */
|
| + initializePage: function() {
|
| + // Call base class implementation to start preference initialization.
|
| + OptionsPage.prototype.initializePage.call(this);
|
| +
|
| + var self = this;
|
| + $('alertOverlayOk').onclick = function(event) {
|
| + self.handleOK_();
|
| + };
|
| +
|
| + $('alertOverlayCancel').onclick = function(event) {
|
| + self.handleCancel_();
|
| + };
|
| + },
|
| +
|
| + /**
|
| + * Handle the 'ok' button. Clear the overlay and call the ok callback if
|
| + * available.
|
| + * @private
|
| + */
|
| + handleOK_: function() {
|
| + OptionsPage.closeOverlay();
|
| + if (this.okCallback != undefined) {
|
| + this.okCallback.call();
|
| + }
|
| + },
|
| +
|
| + /**
|
| + * Handle the 'cancel' button. Clear the overlay and call the cancel
|
| + * callback if available.
|
| + * @private
|
| + */
|
| + handleCancel_: function() {
|
| + OptionsPage.closeOverlay();
|
| + if (this.cancelCallback != undefined) {
|
| + this.cancelCallback.call();
|
| + }
|
| + },
|
| +
|
| + /**
|
| + * The page is getting hidden. Don't let it be shown again.
|
| + */
|
| + willHidePage: function() {
|
| + canShow_ = false;
|
| + },
|
| +
|
| + /** @inheritDoc */
|
| + canShowPage: function() {
|
| + return this.canShow_;
|
| + },
|
| + };
|
| +
|
| + /**
|
| + * Show an alert overlay with the given message, button titles, and
|
| + * callbacks.
|
| + * @param {string} title The alert title to display to the user.
|
| + * @param {string} message The alert message to display to the user.
|
| + * @param {string} okTitle The title of the OK button. If undefined or empty,
|
| + * no button is shown.
|
| + * @param {string} cancelTitle The title of the cancel button. If undefined or
|
| + * empty, no button is shown.
|
| + * @param {function} okCallback A function to be called when the user presses
|
| + * the ok button. The alert window will be closed automatically. Can be
|
| + * undefined.
|
| + * @param {function} cancelCallback A function to be called when the user
|
| + * presses the cancel button. The alert window will be closed
|
| + * automatically. Can be undefined.
|
| + */
|
| + AlertOverlay.show = function(
|
| + title, message, okTitle, cancelTitle, okCallback, cancelCallback) {
|
| + if (title != undefined) {
|
| + $('alertOverlayTitle').textContent = title;
|
| + $('alertOverlayTitle').style.display = 'block';
|
| + } else {
|
| + $('alertOverlayTitle').style.display = 'none';
|
| + }
|
| +
|
| + if (message != undefined) {
|
| + $('alertOverlayMessage').textContent = message;
|
| + $('alertOverlayMessage').style.display = 'block';
|
| + } else {
|
| + $('alertOverlayMessage').style.display = 'none';
|
| + }
|
| +
|
| + if (okTitle != undefined && okTitle != '') {
|
| + $('alertOverlayOk').textContent = okTitle;
|
| + $('alertOverlayOk').style.display = 'block';
|
| + } else {
|
| + $('alertOverlayOk').style.display = 'none';
|
| + }
|
| +
|
| + if (cancelTitle != undefined && cancelTitle != '') {
|
| + $('alertOverlayCancel').textContent = cancelTitle;
|
| + $('alertOverlayCancel').style.display = 'inline';
|
| + } else {
|
| + $('alertOverlayCancel').style.display = 'none';
|
| + }
|
| +
|
| + var alertOverlay = AlertOverlay.getInstance();
|
| + alertOverlay.okCallback = okCallback;
|
| + alertOverlay.cancelCallback = cancelCallback;
|
| + alertOverlay.canShow_ = true;
|
| +
|
| + // Intentionally don't show the URL in the location bar as we don't want
|
| + // people trying to navigate here by hand.
|
| + OptionsPage.showPageByName('alertOverlay', false);
|
| + }
|
| +
|
| + // Export
|
| + return {
|
| + AlertOverlay: AlertOverlay
|
| + };
|
| +});
|
|
|