aboutsummaryrefslogtreecommitdiff
path: root/contexts/data/lib/closure-library/closure/goog/ui/offlinestatuscard.js
diff options
context:
space:
mode:
Diffstat (limited to 'contexts/data/lib/closure-library/closure/goog/ui/offlinestatuscard.js')
-rw-r--r--contexts/data/lib/closure-library/closure/goog/ui/offlinestatuscard.js581
1 files changed, 0 insertions, 581 deletions
diff --git a/contexts/data/lib/closure-library/closure/goog/ui/offlinestatuscard.js b/contexts/data/lib/closure-library/closure/goog/ui/offlinestatuscard.js
deleted file mode 100644
index c68f4f9..0000000
--- a/contexts/data/lib/closure-library/closure/goog/ui/offlinestatuscard.js
+++ /dev/null
@@ -1,581 +0,0 @@
-// Copyright 2007 The Closure Library 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.
-
-/**
- * @fileoverview A card that displays the offline status of an app. It contains
- * detailed information such as a progress bar the indicates the status of
- * syncing and allows you to perform actions (such as manually go offline).
- *
- * @see ../demos/offline.html
- */
-
-goog.provide('goog.ui.OfflineStatusCard');
-goog.provide('goog.ui.OfflineStatusCard.EventType');
-
-goog.require('goog.dom');
-goog.require('goog.events.EventType');
-goog.require('goog.gears.StatusType');
-goog.require('goog.structs.Map');
-goog.require('goog.style');
-goog.require('goog.ui.Component');
-goog.require('goog.ui.Component.EventType');
-goog.require('goog.ui.ProgressBar');
-
-
-
-/**
- * A offline status card.
- * @param {goog.dom.DomHelper=} opt_domHelper Optional DOM helper.
- * @constructor
- * @extends {goog.ui.Component}
- */
-goog.ui.OfflineStatusCard = function(opt_domHelper) {
- goog.ui.Component.call(this, opt_domHelper);
-
- /**
- * The progress bar for showing the status of syncing.
- * @type {goog.ui.ProgressBar}
- * @private
- */
- this.progressBar_ = new goog.ui.ProgressBar(opt_domHelper);
- this.addChild(this.progressBar_);
-
- /**
- * A map of action element uid/action event type pairs.
- * @type {goog.structs.Map}
- * @private
- */
- this.actionMap_ = new goog.structs.Map();
-};
-goog.inherits(goog.ui.OfflineStatusCard, goog.ui.Component);
-
-
-/**
- * Event types dispatched by the component.
- * @enum {string}
- */
-goog.ui.OfflineStatusCard.EventType = {
- /** Dispatched when the user wants the card to be dismissed. */
- DISMISS: 'dismiss'
-};
-
-
-/**
- * Whether the component is dirty and requires an upate to its display.
- * @type {boolean}
- * @protected
- */
-goog.ui.OfflineStatusCard.prototype.dirty = false;
-
-
-/**
- * The status of the component.
- * @type {goog.gears.StatusType}
- * @private
- */
-goog.ui.OfflineStatusCard.prototype.status_ =
- goog.gears.StatusType.NOT_INSTALLED;
-
-
-/**
- * The element that holds the status message.
- * @type {Element}
- * @private
- */
-goog.ui.OfflineStatusCard.prototype.statusEl_ = null;
-
-
-/**
- * The element that, when clicked, performs the appropriate action (such as
- * pausing synchronization).
- * @type {Element}
- * @private
- */
-goog.ui.OfflineStatusCard.prototype.actionEl_ = null;
-
-
-/**
- * The element that displays additional messaging.
- * @type {Element}
- * @private
- */
-goog.ui.OfflineStatusCard.prototype.messageEl_ = null;
-
-
-/**
- * The element that holds the progress bar and progress status.
- * @type {Element}
- * @private
- */
-goog.ui.OfflineStatusCard.prototype.progressEl_ = null;
-
-
-/**
- * The element that holds the progress status.
- * @type {Element}
- * @private
- */
-goog.ui.OfflineStatusCard.prototype.progressStatusEl_ = null;
-
-
-/**
- * The element that holds the close button.
- * @type {Element}
- * @private
- */
-goog.ui.OfflineStatusCard.prototype.closeEl_ = null;
-
-
-/**
- * CSS class name for the element.
- * @type {string}
- * @private
- */
-goog.ui.OfflineStatusCard.prototype.className_ =
- goog.getCssName('goog-offlinestatuscard');
-
-
-/**
- * CSS class name for the shadow element.
- * @type {string}
- * @private
- */
-goog.ui.OfflineStatusCard.prototype.shadowClassName_ =
- goog.getCssName('goog-offlinestatuscard-shadow');
-
-
-/**
- * CSS class name for the content element.
- * @type {string}
- * @private
- */
-goog.ui.OfflineStatusCard.prototype.contentClassName_ =
- goog.getCssName('goog-offlinestatuscard-content');
-
-
-/**
- * CSS class name for the status element.
- * @type {string}
- * @private
- */
-goog.ui.OfflineStatusCard.prototype.statusClassName_ =
- goog.getCssName('goog-offlinestatuscard-status');
-
-
-/**
- * CSS class name for the action element.
- * @type {string}
- * @private
- */
-goog.ui.OfflineStatusCard.prototype.actionClassName_ =
- goog.getCssName('goog-offlinestatuscard-action');
-
-
-/**
- * CSS class name for each action item contained in the action element.
- * @type {string}
- * @private
- */
-goog.ui.OfflineStatusCard.prototype.actionItemClassName_ =
- goog.getCssName('goog-offlinestatuscard-action-item');
-
-
-/**
- * CSS class name for the last action item contained in the action element.
- * @type {string}
- * @private
- */
-goog.ui.OfflineStatusCard.prototype.lastActionItemClassName_ =
- goog.getCssName('goog-offlinestatuscard-action-item-last');
-
-
-/**
- * CSS class name for the message element.
- * @type {string}
- * @private
- */
-goog.ui.OfflineStatusCard.prototype.messageClassName_ =
- goog.getCssName('goog-offlinestatuscard-message');
-
-
-/**
- * CSS class name for the progress bar status element.
- * @type {string}
- * @private
- */
-goog.ui.OfflineStatusCard.prototype.progressBarStatusClassName_ =
- goog.getCssName('goog-offlinestatuscard-progressbarstatus');
-
-
-/**
- * CSS class name for the close card element.
- * @type {string}
- * @private
- */
-goog.ui.OfflineStatusCard.prototype.closeCardClassName_ =
- goog.getCssName('goog-offlinestatuscard-closecard');
-
-
-/**
- * Gets the progress bar.
- * @return {goog.ui.ProgressBar} The progress bar.
- */
-goog.ui.OfflineStatusCard.prototype.getProgressBar = function() {
- return this.progressBar_;
-};
-
-
-/**
- * Gets the status of the offline component of the app.
- * @return {goog.gears.StatusType} The offline status.
- */
-goog.ui.OfflineStatusCard.prototype.getStatus = function() {
- return this.status_;
-};
-
-
-/**
- * Sets the status of the offline component of the app.
- * @param {goog.gears.StatusType} status The offline status.
- */
-goog.ui.OfflineStatusCard.prototype.setStatus = function(status) {
- if (this.status_ != status) {
- this.dirty = true;
- }
- this.status_ = status;
- if (this.isInDocument()) {
- this.update();
- }
-};
-
-
-/**
- * Creates the initial DOM representation for the component.
- * @override
- */
-goog.ui.OfflineStatusCard.prototype.createDom = function() {
- var dom = this.getDomHelper();
- this.setElementInternal(dom.createDom('div', this.className_,
- dom.createDom('div', this.shadowClassName_,
- dom.createDom('div', this.contentClassName_,
- this.closeEl_ = dom.createDom('div', this.closeCardClassName_),
- this.statusEl_ = dom.createDom('div', this.statusClassName_),
- this.progressEl_ = dom.createDom('div', null,
- this.progressBarStatusEl_ =
- dom.createDom('div', this.progressBarStatusClassName_)),
- this.actionEl_ = dom.createDom('div', this.actionClassName_),
- this.messageEl_ = dom.createDom('div',
- this.messageClassName_)))));
-
- // Create and append the DOM of the progress bar.
- this.progressBar_.createDom();
- dom.insertSiblingBefore(
- this.progressBar_.getElement(), this.progressBarStatusEl_);
-
- this.createAdditionalDom();
-
- this.update();
-};
-
-
-/** @override */
-goog.ui.OfflineStatusCard.prototype.enterDocument = function() {
- goog.ui.OfflineStatusCard.superClass_.enterDocument.call(this);
-
- // Listen for changes to the progress bar.
- var handler = this.getHandler();
- handler.listen(this.progressBar_, goog.ui.Component.EventType.CHANGE,
- this.handleProgressChange_);
-
- // Listen for a click on the action element.
- handler.listen(
- this.actionEl_, goog.events.EventType.CLICK, this.handleActionClick_);
-
- // Listen for the click on the close element.
- handler.listen(this.closeEl_, goog.events.EventType.CLICK, this.closePopup_);
-
- // Update the component if it is dirty.
- if (this.dirty) {
- this.update();
- }
-};
-
-
-/**
- * Allows subclasses to initialize additional DOM structures during createDom.
- * @protected
- */
-goog.ui.OfflineStatusCard.prototype.createAdditionalDom = function() {
-};
-
-
-/**
- * Sends an event to OfflineStatusComponent to dismiss the popup.
- * @private
- */
-goog.ui.OfflineStatusCard.prototype.closePopup_ = function() {
- this.dispatchEvent(goog.ui.OfflineStatusCard.EventType.DISMISS);
-};
-
-
-/**
- * Updates the display of the component.
- */
-goog.ui.OfflineStatusCard.prototype.update = function() {
- if (this.getElement()) {
- var status = this.getStatus();
- var dom = this.getDomHelper();
-
- this.configureStatusElement(status);
- this.configureActionLinks(status);
- this.configureProgressElement(status);
-
- // Configure the message element.
- var message = this.getAdditionalMessage(status);
- var messageEl = this.messageEl_;
- goog.style.showElement(messageEl, message);
- if (message) {
- dom.setTextContent(messageEl, message);
- }
-
- // Clear the dirty state.
- this.dirty = false;
- }
-};
-
-
-/**
- * Set the message to display in the status portion of the card.
- * @param {goog.gears.StatusType} status The offline status.
- */
-goog.ui.OfflineStatusCard.prototype.configureStatusElement = function(status) {
- /**
- * @desc Tell the user whether they are online, offline, or syncing to
- * Gears.
- */
- var MSG_OFFLINE_STATUS = goog.getMsg(
- 'Status: {$msg}', {'msg': this.getStatusMessage(status)});
- this.getDomHelper().setTextContent(this.statusEl_, MSG_OFFLINE_STATUS);
-};
-
-
-/**
- * Set the action element to show correct action(s) for a particular status.
- * @param {goog.gears.StatusType} status The offline status.
- */
-goog.ui.OfflineStatusCard.prototype.configureActionLinks = function(status) {
- // Configure the action element.
- var actions = this.getActions(status);
- goog.dom.removeChildren(this.actionEl_);
- this.actionMap_.clear();
-
- if (actions) {
- var lastIdx = actions.length - 1;
- for (var i = 0; i <= lastIdx; i++) {
- // Ensure there is no padding to the right of the last action link.
- this.createLinkNode_(actions[i], i == lastIdx ?
- this.lastActionItemClassName_ : this.actionItemClassName_);
- }
- }
-};
-
-
-/**
- * Creates an action link element and styles it.
- * @param {Object} action An action object with message and event type.
- * @param {string} className The css class name to style the link with.
- * @private
- */
-goog.ui.OfflineStatusCard.prototype.createLinkNode_ = function(
- action, className) {
- var actionEl = this.actionEl_;
- var dom = this.getDomHelper();
- var a = dom.createDom('span', className);
- dom.appendChild(actionEl, a);
- // A text node is needed here in order for links to wrap.
- dom.appendChild(actionEl, dom.createTextNode(' '));
- this.actionMap_.set(goog.getUid(a), action.eventType);
- goog.style.showElement(a, true);
- dom.setTextContent(a, action.message);
-};
-
-
-/**
- * Configure the progress bar element.
- * @param {goog.gears.StatusType} status The offline status.
- */
-goog.ui.OfflineStatusCard.prototype.configureProgressElement =
- function(status) {
- var showProgress = this.shouldShowProgressBar(status);
- goog.style.showElement(this.progressEl_, showProgress);
- if (showProgress) {
- this.updateProgressStatus();
- }
-};
-
-
-/**
- * Returns true if we want to display a progress bar.
- * @param {goog.gears.StatusType} status The offline status.
- * @return {boolean} Whether we want to display a progress bar.
- */
-goog.ui.OfflineStatusCard.prototype.shouldShowProgressBar = function(status) {
- return status == goog.gears.StatusType.SYNCING ||
- status == goog.gears.StatusType.CAPTURING;
-};
-
-
-/**
- * Handles a CHANGE event of the progress bar. Updates the status.
- * @param {goog.events.Event} e The event.
- * @private
- */
-goog.ui.OfflineStatusCard.prototype.handleProgressChange_ = function(e) {
- this.updateProgressStatus();
-};
-
-
-/**
- * Handles a CLICK event on the action element. Dispatches the appropriate
- * action event type.
- * @param {goog.events.BrowserEvent} e The event.
- * @private
- */
-goog.ui.OfflineStatusCard.prototype.handleActionClick_ = function(e) {
- var actionEventType = /** @type {string} */ (this.actionMap_.get(
- goog.getUid(e.target)));
- if (actionEventType) {
- this.dispatchEvent(actionEventType);
- }
-};
-
-
-/**
- * Updates the status of the progress bar.
- * @protected
- */
-goog.ui.OfflineStatusCard.prototype.updateProgressStatus = function() {
- this.getDomHelper().setTextContent(
- this.progressBarStatusEl_, this.getProgressStatusMessage());
-};
-
-
-/**
- * Gets the status message for the progress bar.
- * @return {string} The status message for the progress bar.
- */
-goog.ui.OfflineStatusCard.prototype.getProgressStatusMessage = function() {
- var pb = this.progressBar_;
- var percentValue = Math.round((pb.getValue() - pb.getMinimum()) /
- (pb.getMaximum() - pb.getMinimum()) * 100);
- /** @desc The percent complete status of the syncing. */
- var MSG_OFFLINE_PERCENT_COMPLETE = goog.getMsg(
- '{$num}% complete.', {'num': percentValue});
- return MSG_OFFLINE_PERCENT_COMPLETE;
-};
-
-
-/**
- * Gets the status message for the given status.
- * @param {goog.gears.StatusType} status The offline status.
- * @return {string} The status message.
- */
-goog.ui.OfflineStatusCard.prototype.getStatusMessage = function(status) {
- var message = '';
-
- switch (status) {
- case goog.gears.StatusType.OFFLINE:
- /** @desc Status shown when the app is offline. */
- var MSG_OFFLINE_STATUS_OFFLINE_MESSAGE = goog.getMsg(
- 'Offline. No connection available.');
- message = MSG_OFFLINE_STATUS_OFFLINE_MESSAGE;
- break;
- case goog.gears.StatusType.ONLINE:
- /** @desc Status shown when the app is online. */
- var MSG_OFFLINE_STATUS_ONLINE_MESSAGE = goog.getMsg('Online');
- message = MSG_OFFLINE_STATUS_ONLINE_MESSAGE;
- break;
- case goog.gears.StatusType.SYNCING:
- /** @desc Status shown when the app is synchronizing. */
- var MSG_OFFLINE_STATUS_SYNCING_MESSAGE = goog.getMsg('Synchronizing...');
- message = MSG_OFFLINE_STATUS_SYNCING_MESSAGE;
- break;
- case goog.gears.StatusType.CAPTURING:
- /** @desc Status shown when the app is capturing resources. */
- var MSG_OFFLINE_STATUS_CAPTURING_MESSAGE = goog.getMsg(
- 'Updating software...');
- message = MSG_OFFLINE_STATUS_CAPTURING_MESSAGE;
- break;
- case goog.gears.StatusType.ERROR:
- /** @desc Status shown when an error has occured. */
- var MSG_OFFLINE_STATUS_ERROR_MESSAGE = goog.getMsg(
- 'Errors have been found.');
- message = MSG_OFFLINE_STATUS_ERROR_MESSAGE;
- break;
- default:
- break;
- }
- return message;
-};
-
-
-/**
- * Gets the action to display for the given status.
- * @param {goog.gears.StatusType} status The offline status.
- * @return {Array.<Object>?} An array of action objects to display.
- */
-goog.ui.OfflineStatusCard.prototype.getActions = function(status) {
- return null;
-};
-
-
-/**
- * Creates an action object containing a message for the action and event
- * type to dispatch if the action occurs.
- * @param {string} actionMessage The action message.
- * @param {string} actionEventType The action event type.
- * @return {Object} An object containing message and eventType properties.
- */
-goog.ui.OfflineStatusCard.prototype.createActionObject = function(
- actionMessage, actionEventType) {
- return {message: actionMessage, eventType: actionEventType};
-};
-
-
-/**
- * Gets the additional message to display for the given status.
- * @param {goog.gears.StatusType} status The offline status.
- * @return {string} The additional message.
- */
-goog.ui.OfflineStatusCard.prototype.getAdditionalMessage = function(status) {
- return '';
-};
-
-
-/** @override */
-goog.ui.OfflineStatusCard.prototype.disposeInternal = function() {
- goog.ui.OfflineStatusCard.superClass_.disposeInternal.call(this);
-
- this.progressBar_.dispose();
- this.progressBar_ = null;
-
- this.actionMap_.clear();
- this.actionMap_ = null;
-
- this.statusEl_ = null;
- this.actionEl_ = null;
- this.messageEl_ = null;
- this.progressEl_ = null;
- this.progressStatusEl_ = null;
-};