| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 /** | 5 /** |
| 6 * The minimum about of time to display the butter bar for, in ms. | 6 * The minimum about of time to display the butter bar for, in ms. |
| 7 * Justification is 1000ms for minimum display time plus 300ms for transition | 7 * Justification is 1000ms for minimum display time plus 300ms for transition |
| 8 * duration. | 8 * duration. |
| 9 */ | 9 */ |
| 10 var MINIMUM_BUTTER_DISPLAY_TIME_MS = 1300; | 10 var MINIMUM_BUTTER_DISPLAY_TIME_MS = 1300; |
| 11 | 11 |
| 12 /** | 12 /** |
| 13 * Butter bar is shown on top of the file list and is used to show the copy | 13 * Butter bar is shown on top of the file list and is used to show the copy |
| 14 * progress and other messages. | 14 * progress and other messages. |
| 15 * @constructor | |
| 16 * @param {HTMLElement} dialogDom FileManager top-level div. | 15 * @param {HTMLElement} dialogDom FileManager top-level div. |
| 17 * @param {FileCopyManagerWrapper} copyManager The copy manager. | 16 * @param {FileCopyManagerWrapper} copyManager The copy manager. |
| 18 * @param {MetadataCache} metadataCache The metadata cache. | 17 * @param {MetadataCache} metadataCache The metadata cache. |
| 18 * @constructor |
| 19 */ | 19 */ |
| 20 function ButterBar(dialogDom, copyManager, metadataCache) { | 20 function ButterBar(dialogDom, copyManager, metadataCache) { |
| 21 this.dialogDom_ = dialogDom; | 21 this.dialogDom_ = dialogDom; |
| 22 this.butter_ = this.dialogDom_.querySelector('#butter-bar'); | 22 this.butter_ = this.dialogDom_.querySelector('#butter-bar'); |
| 23 this.document_ = this.butter_.ownerDocument; | 23 this.document_ = this.butter_.ownerDocument; |
| 24 this.copyManager_ = copyManager; | 24 this.copyManager_ = copyManager; |
| 25 this.metadataCache_ = metadataCache; | 25 this.metadataCache_ = metadataCache; |
| 26 this.hideTimeout_ = null; | 26 this.hideTimeout_ = null; |
| 27 this.showTimeout_ = null; | 27 this.showTimeout_ = null; |
| 28 this.lastShowTime_ = 0; | 28 this.lastShowTime_ = 0; |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 89 this.butter_.querySelector('.progress-bar').hidden = | 89 this.butter_.querySelector('.progress-bar').hidden = |
| 90 !(opt_options && 'progress' in opt_options); | 90 !(opt_options && 'progress' in opt_options); |
| 91 | 91 |
| 92 this.butter_.classList.remove('error'); | 92 this.butter_.classList.remove('error'); |
| 93 this.butter_.classList.remove('visible'); // Will be shown in update_ | 93 this.butter_.classList.remove('visible'); // Will be shown in update_ |
| 94 this.update_(message, opt_options); | 94 this.update_(message, opt_options); |
| 95 }; | 95 }; |
| 96 | 96 |
| 97 /** | 97 /** |
| 98 * Show error message in butter bar. | 98 * Show error message in butter bar. |
| 99 * @private | |
| 100 * @param {string} message Message. | 99 * @param {string} message Message. |
| 101 * @param {object} opt_options Same as in show(). | 100 * @param {object} opt_options Same as in show(). |
| 101 * @private |
| 102 */ | 102 */ |
| 103 ButterBar.prototype.showError_ = function(message, opt_options) { | 103 ButterBar.prototype.showError_ = function(message, opt_options) { |
| 104 this.show(message, opt_options); | 104 this.show(message, opt_options); |
| 105 this.butter_.classList.add('error'); | 105 this.butter_.classList.add('error'); |
| 106 }; | 106 }; |
| 107 | 107 |
| 108 /** | 108 /** |
| 109 * Set message and/or progress. | 109 * Set message and/or progress. |
| 110 * @private | |
| 111 * @param {string} message Message. | 110 * @param {string} message Message. |
| 112 * @param {object} opt_options Same as in show(). | 111 * @param {object} opt_options Same as in show(). |
| 112 * @private |
| 113 */ | 113 */ |
| 114 ButterBar.prototype.update_ = function(message, opt_options) { | 114 ButterBar.prototype.update_ = function(message, opt_options) { |
| 115 if (!opt_options) | 115 if (!opt_options) |
| 116 opt_options = {}; | 116 opt_options = {}; |
| 117 | 117 |
| 118 this.clearHideTimeout_(); | 118 this.clearHideTimeout_(); |
| 119 | 119 |
| 120 var timeout = ('timeout' in opt_options) ? opt_options.timeout : 10 * 1000; | 120 var timeout = ('timeout' in opt_options) ? opt_options.timeout : 10 * 1000; |
| 121 if (timeout) { | 121 if (timeout) { |
| 122 this.hideTimeout_ = setTimeout(function() { | 122 this.hideTimeout_ = setTimeout(function() { |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 197 * @private | 197 * @private |
| 198 */ | 198 */ |
| 199 ButterBar.prototype.clearHideTimeout_ = function() { | 199 ButterBar.prototype.clearHideTimeout_ = function() { |
| 200 if (this.hideTimeout_) { | 200 if (this.hideTimeout_) { |
| 201 clearTimeout(this.hideTimeout_); | 201 clearTimeout(this.hideTimeout_); |
| 202 this.hideTimeout_ = null; | 202 this.hideTimeout_ = null; |
| 203 } | 203 } |
| 204 }; | 204 }; |
| 205 | 205 |
| 206 /** | 206 /** |
| 207 * @return {string?} The type of operation. |
| 207 * @private | 208 * @private |
| 208 * @return {string?} The type of operation. | |
| 209 */ | 209 */ |
| 210 ButterBar.prototype.transferType_ = function() { | 210 ButterBar.prototype.transferType_ = function() { |
| 211 var progress = this.progress_; | 211 var progress = this.progress_; |
| 212 if (!progress) | 212 if (!progress) |
| 213 return 'TRANSFER'; | 213 return 'TRANSFER'; |
| 214 | 214 |
| 215 var pendingTransferTypesCount = | 215 var pendingTransferTypesCount = |
| 216 (progress.pendingMoves === 0 ? 0 : 1) + | 216 (progress.pendingMoves === 0 ? 0 : 1) + |
| 217 (progress.pendingCopies === 0 ? 0 : 1) + | 217 (progress.pendingCopies === 0 ? 0 : 1) + |
| 218 (progress.pendingZips === 0 ? 0 : 1); | 218 (progress.pendingZips === 0 ? 0 : 1); |
| (...skipping 25 matching lines...) Expand all Loading... |
| 244 this.update_(progressString, options); | 244 this.update_(progressString, options); |
| 245 } else { | 245 } else { |
| 246 options.actions[ButterBar.ACTION_X] = | 246 options.actions[ButterBar.ACTION_X] = |
| 247 this.copyManager_.requestCancel.bind(this.copyManager_); | 247 this.copyManager_.requestCancel.bind(this.copyManager_); |
| 248 this.show(progressString, options); | 248 this.show(progressString, options); |
| 249 } | 249 } |
| 250 }; | 250 }; |
| 251 | 251 |
| 252 /** | 252 /** |
| 253 * 'copy-progress' event handler. Show progress or an appropriate message. | 253 * 'copy-progress' event handler. Show progress or an appropriate message. |
| 254 * @param {cr.Event} event A 'copy-progress' event from FileCopyManager. |
| 254 * @private | 255 * @private |
| 255 * @param {cr.Event} event A 'copy-progress' event from FileCopyManager. | |
| 256 */ | 256 */ |
| 257 ButterBar.prototype.onCopyProgress_ = function(event) { | 257 ButterBar.prototype.onCopyProgress_ = function(event) { |
| 258 // Delete operation has higher priority. | 258 // Delete operation has higher priority. |
| 259 if (this.deleteTaskId_) return; | 259 if (this.deleteTaskId_) return; |
| 260 | 260 |
| 261 if (event.reason != 'PROGRESS') | 261 if (event.reason != 'PROGRESS') |
| 262 this.clearShowTimeout_(); | 262 this.clearShowTimeout_(); |
| 263 | 263 |
| 264 switch (event.reason) { | 264 switch (event.reason) { |
| 265 case 'BEGIN': | 265 case 'BEGIN': |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 346 * @return {boolean} Whether there was a delete task. | 346 * @return {boolean} Whether there was a delete task. |
| 347 */ | 347 */ |
| 348 ButterBar.prototype.forceDeleteAndHide = function() { | 348 ButterBar.prototype.forceDeleteAndHide = function() { |
| 349 var result = this.forceDelete_(); | 349 var result = this.forceDelete_(); |
| 350 if (result) this.hide_(); | 350 if (result) this.hide_(); |
| 351 return result; | 351 return result; |
| 352 }; | 352 }; |
| 353 | 353 |
| 354 /** | 354 /** |
| 355 * 'delete' event handler. Shows information about deleting files. | 355 * 'delete' event handler. Shows information about deleting files. |
| 356 * @param {cr.Event} event A 'delete' event from FileCopyManager. |
| 356 * @private | 357 * @private |
| 357 * @param {cr.Event} event A 'delete' event from FileCopyManager. | |
| 358 */ | 358 */ |
| 359 ButterBar.prototype.onDelete_ = function(event) { | 359 ButterBar.prototype.onDelete_ = function(event) { |
| 360 if (event.id != this.deleteTaskId_) return; | 360 if (event.id != this.deleteTaskId_) return; |
| 361 | 361 |
| 362 switch (event.reason) { | 362 switch (event.reason) { |
| 363 case 'SCHEDULED': | 363 case 'SCHEDULED': |
| 364 var props = []; | 364 var props = []; |
| 365 for (var i = 0; i < event.urls.length; i++) { | 365 for (var i = 0; i < event.urls.length; i++) { |
| 366 props[i] = {deleted: true}; | 366 props[i] = {deleted: true}; |
| 367 } | 367 } |
| (...skipping 28 matching lines...) Expand all Loading... |
| 396 } | 396 } |
| 397 }; | 397 }; |
| 398 | 398 |
| 399 /** | 399 /** |
| 400 * Undo the delete operation. | 400 * Undo the delete operation. |
| 401 * @private | 401 * @private |
| 402 */ | 402 */ |
| 403 ButterBar.prototype.undoDelete_ = function() { | 403 ButterBar.prototype.undoDelete_ = function() { |
| 404 this.copyManager_.cancelDeleteTask(this.deleteTaskId_); | 404 this.copyManager_.cancelDeleteTask(this.deleteTaskId_); |
| 405 }; | 405 }; |
| OLD | NEW |