Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1181)

Unified Diff: chrome/browser/resources/file_manager/js/ui/progress_center_panel.js

Issue 39123003: [Files.app] Split the JavaScript files into subdirectories: common, background, and foreground (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fixed test failure. Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/resources/file_manager/js/ui/progress_center_panel.js
diff --git a/chrome/browser/resources/file_manager/js/ui/progress_center_panel.js b/chrome/browser/resources/file_manager/js/ui/progress_center_panel.js
deleted file mode 100644
index e8e9405122be8594d44de657c633dd73b103eeaf..0000000000000000000000000000000000000000
--- a/chrome/browser/resources/file_manager/js/ui/progress_center_panel.js
+++ /dev/null
@@ -1,196 +0,0 @@
-// Copyright 2013 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.
-
-'use strict';
-
-/**
- * Progress center panel.
- *
- * @param {HTMLElement} element DOM Element of the process center panel.
- * @param {function(string)} cancelCallback Callback to becalled with the ID of
- * the progress item when the cancel button is clicked.
- * @constructor
- */
-var ProgressCenterPanel = function(element, cancelCallback) {
- this.element_ = element;
- this.openView_ = this.element_.querySelector('#progress-center-open-view');
- this.closeView_ = this.element_.querySelector('#progress-center-close-view');
- this.cancelCallback_ = cancelCallback;
-
- /**
- * Only progress item in the close view.
- * @type {!HTMLElement}
- * @private
- */
- this.closeViewItem_ = this.closeView_.querySelector('li');
-
- Object.freeze(this);
-
- // Register event handlers.
- element.addEventListener('click', this.onClick_.bind(this));
- element.addEventListener(
- 'webkitTransitionEnd', this.onItemTransitionEnd_.bind(this));
-};
-
-/**
- * Whether to use the new progress center UI or not.
- * TODO(hirono): Remove the flag after replacing the old butter bar with the new
- * progress center.
- * @type {boolean}
- * @private
- */
-ProgressCenterPanel.ENABLED_ = true;
-
-/**
- * Update item element.
- * @param {HTMLElement} element Element to be updated.
- * @param {ProgressCenterItem} item Progress center item.
- * @private
- */
-ProgressCenterPanel.updateItemElement_ = function(element, item) {
- var additionalClass = item.state === ProgressItemState.COMPLETE ? 'complete' :
- item.state === ProgressItemState.ERROR ? 'error' :
- item.state === ProgressItemState.CANCELED ? 'canceled' :
- '';
- if (item.cancelable)
- additionalClass += ' cancelable';
- var previousWidthRate =
- parseInt(element.querySelector('.progress-track').style.width);
- if (item.state === ProgressItemState.COMPLETE &&
- previousWidthRate === item.progressRateByPercent) {
- // Stop to update the message until the transition ends.
- element.setAttribute('data-complete-message', item.message);
- // The class pre-complete means that the actual operation is already done
- // but the UI transition of progress bar is not complete.
- additionalClass = 'pre-complete';
- } else {
- element.querySelector('label').textContent = item.message;
- element.removeAttribute('data-complete-message');
- }
- // To commit the property change and to trigger the transition even if the
- // change is done synchronously, assign the width value asynchronously.
- setTimeout(function() {
- var track = element.querySelector('.progress-track');
- // When the progress rate is reverted, we does not use the transition
- // animation. Specifying '0' overrides the CSS settings and specifying null
- // re-enables it.
- track.style.transitionDuration =
- previousWidthRate > item.progressRateByPercent ? '0' : null;
- track.style.width = item.progressRateByPercent + '%';
- }, 0);
- element.setAttribute('data-progress-id', item.id);
- element.setAttribute('data-progress-max', item.progressMax);
- element.setAttribute('data-progress-value', item.progressValue);
- element.className = additionalClass;
-};
-
-/**
- * Updates an item to the progress center panel.
- * @param {ProgressCenterItem} item Item including new contents.
- * @param {ProgressCenterItem} summarizedItem Item to be desplayed in the close
- * view.
- */
-ProgressCenterPanel.prototype.updateItem = function(item, summarizedItem) {
- var itemElement = this.getItemElement_(item.id);
- if (!itemElement) {
- itemElement = this.createNewItemElement_();
- this.openView_.insertBefore(itemElement, this.openView_.firstNode);
- }
- ProgressCenterPanel.updateItemElement_(itemElement, item);
-
- // Update close view.
- this.closeView_.classList.toggle('single', !summarizedItem.summarized);
- ProgressCenterPanel.updateItemElement_(this.closeViewItem_, summarizedItem);
-
- if (ProgressCenterPanel.ENABLED_)
- this.element_.hidden = false;
-};
-
-/**
- * Remove all the items.
- */
-ProgressCenterPanel.prototype.reset = function() {
- // Clear the all compete item.
- this.openView_.innerHTML = '';
-
- // Hide the progress center.
- this.element_.hidden = true;
- this.element_.classList.remove('opened');
-};
-
-/**
- * Gets an item element having the specified ID.
- * @param {string} id progress item ID.
- * @return {HTMLElement} Item element having the ID.
- * @private
- */
-ProgressCenterPanel.prototype.getItemElement_ = function(id) {
- var query = 'li[data-progress-id="' + id + '"]';
- return this.openView_.querySelector(query);
-};
-
-/**
- * Creates an item element.
- * @return {HTMLElement} Created item element.
- * @private
- */
-ProgressCenterPanel.prototype.createNewItemElement_ = function() {
- var label = this.element_.ownerDocument.createElement('label');
- label.className = 'label';
-
- var progressBarIndicator = this.element_.ownerDocument.createElement('div');
- progressBarIndicator.className = 'progress-track';
-
- var progressBar = this.element_.ownerDocument.createElement('div');
- progressBar.className = 'progress-bar';
- progressBar.appendChild(progressBarIndicator);
-
- var cancelButton = this.element_.ownerDocument.createElement('button');
- cancelButton.className = 'cancel';
- cancelButton.setAttribute('tabindex', '-1');
-
- var progressFrame = this.element_.ownerDocument.createElement('div');
- progressFrame.className = 'progress-frame';
- progressFrame.appendChild(progressBar);
- progressFrame.appendChild(cancelButton);
-
- var itemElement = this.element_.ownerDocument.createElement('li');
- itemElement.appendChild(label);
- itemElement.appendChild(progressFrame);
-
- return itemElement;
-};
-
-/**
- * Handles the transition end event of items.
- * @param {Event} event Transition end event.
- * @private
- */
-ProgressCenterPanel.prototype.onItemTransitionEnd_ = function(event) {
- var itemElement = event.target.parentNode.parentNode.parentNode;
- if (itemElement.className !== 'pre-complete' ||
- event.propertyName !== 'width')
- return;
- var completeMessage = itemElement.getAttribute('data-complete-message');
- if (!completeMessage)
- return;
- itemElement.className = 'complete';
- itemElement.querySelector('label').textContent = completeMessage;
-};
-
-/**
- * Handles the click event.
- * @param {Event} event Click event.
- * @private
- */
-ProgressCenterPanel.prototype.onClick_ = function(event) {
- if (event.target.classList.contains('toggle') &&
- !this.closeView_.classList.contains('single'))
- this.element_.classList.toggle('opened');
- else if ((event.target.classList.contains('toggle') &&
- this.closeView_.classList.contains('single')) ||
- event.target.classList.contains('cancel'))
- this.cancelCallback_(
- event.target.parentNode.parentNode.getAttribute('data-progress-id'));
-};

Powered by Google App Engine
This is Rietveld 408576698