| 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 * This object encapsulates everything related to tasks execution. | 6 * This object encapsulates everything related to tasks execution. |
| 7 * @param {FileManager} fileManager FileManager instance. | 7 * @param {FileManager} fileManager FileManager instance. |
| 8 * @param {Array.<string>} urls List of file urls. | 8 * @param {Array.<string>} urls List of file urls. |
| 9 */ | 9 */ |
| 10 function FileTasks(fileManager, urls) { | 10 function FileTasks(fileManager, urls) { |
| 11 this.fileManager_ = fileManager; | 11 this.fileManager_ = fileManager; |
| 12 this.urls_ = urls; | 12 this.urls_ = urls; |
| 13 this.tasks_ = null; | 13 this.tasks_ = null; |
| 14 this.defaultTask_ = null; | 14 this.defaultTask_ = null; |
| 15 | 15 |
| 16 /** | 16 /** |
| 17 * List of invocations to be called once tasks are available. | 17 * List of invocations to be called once tasks are available. |
| 18 */ | 18 */ |
| 19 this.pendingInvocations_ = []; | 19 this.pendingInvocations_ = []; |
| 20 | 20 |
| 21 if (urls.length > 0) | 21 if (urls.length > 0) |
| 22 chrome.fileBrowserPrivate.getFileTasks(urls, this.onTasks_.bind(this)); | 22 chrome.fileBrowserPrivate.getFileTasks(urls, this.onTasks_.bind(this)); |
| 23 } | 23 } |
| 24 | 24 |
| 25 /** | 25 /** |
| 26 * Location of the Chrome Web Store. |
| 27 */ |
| 28 FileTasks.CHROME_WEB_STORE_URL = 'https://chrome.google.com/webstore'; |
| 29 |
| 30 /** |
| 26 * Location of the FAQ about the file actions. | 31 * Location of the FAQ about the file actions. |
| 27 */ | 32 */ |
| 28 FileTasks.NO_ACTION_FOR_FILE_URL = 'http://support.google.com/chromeos/bin/' + | 33 FileTasks.NO_ACTION_FOR_FILE_URL = 'http://support.google.com/chromeos/bin/' + |
| 29 'answer.py?answer=1700055&topic=29026&ctx=topic'; | 34 'answer.py?answer=1700055&topic=29026&ctx=topic'; |
| 30 | 35 |
| 31 /** | 36 /** |
| 32 * Callback when tasks found. | 37 * Callback when tasks found. |
| 33 * @param {Array.<Object>} tasks The tasks. | 38 * @param {Array.<Object>} tasks The tasks. |
| 34 * @private | 39 * @private |
| 35 */ | 40 */ |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 113 // We don't have tasks, so try to show a file in a browser tab. | 118 // We don't have tasks, so try to show a file in a browser tab. |
| 114 // We only do that for single selection to avoid confusion. | 119 // We only do that for single selection to avoid confusion. |
| 115 if (this.urls_.length == 1) { | 120 if (this.urls_.length == 1) { |
| 116 var callback = function(success) { | 121 var callback = function(success) { |
| 117 if (!success) { | 122 if (!success) { |
| 118 var filename = decodeURIComponent(this.urls_[0]); | 123 var filename = decodeURIComponent(this.urls_[0]); |
| 119 if (filename.indexOf('/') != -1) | 124 if (filename.indexOf('/') != -1) |
| 120 filename = filename.substr(filename.lastIndexOf('/') + 1); | 125 filename = filename.substr(filename.lastIndexOf('/') + 1); |
| 121 | 126 |
| 122 var text = loadTimeData.getStringF('NO_ACTION_FOR_FILE', | 127 var text = loadTimeData.getStringF('NO_ACTION_FOR_FILE', |
| 128 FileTasks.CHROME_WEB_STORE_URL, |
| 123 FileTasks.NO_ACTION_FOR_FILE_URL); | 129 FileTasks.NO_ACTION_FOR_FILE_URL); |
| 124 this.fileManager_.alert.showHtml(filename, text, function() {}); | 130 this.fileManager_.alert.showHtml(filename, text, function() {}); |
| 125 } | 131 } |
| 126 }.bind(this); | 132 }.bind(this); |
| 127 | 133 |
| 128 this.checkAvailability_(function() { | 134 this.checkAvailability_(function() { |
| 129 chrome.fileBrowserPrivate.viewFiles(this.urls_, 'default', callback); | 135 chrome.fileBrowserPrivate.viewFiles(this.urls_, 'default', callback); |
| 130 }.bind(this)); | 136 }.bind(this)); |
| 131 } | 137 } |
| 132 | 138 |
| (...skipping 362 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 495 return this; | 501 return this; |
| 496 }; | 502 }; |
| 497 }; | 503 }; |
| 498 | 504 |
| 499 FileTasks.decorate('display'); | 505 FileTasks.decorate('display'); |
| 500 FileTasks.decorate('updateMenuItem'); | 506 FileTasks.decorate('updateMenuItem'); |
| 501 FileTasks.decorate('execute'); | 507 FileTasks.decorate('execute'); |
| 502 FileTasks.decorate('executeDefault'); | 508 FileTasks.decorate('executeDefault'); |
| 503 FileTasks.decorate('getExternals'); | 509 FileTasks.decorate('getExternals'); |
| 504 | 510 |
| OLD | NEW |