| Index: ui/file_manager/file_manager/foreground/js/file_manager_commands.js
|
| diff --git a/ui/file_manager/file_manager/foreground/js/file_manager_commands.js b/ui/file_manager/file_manager/foreground/js/file_manager_commands.js
|
| index 84ea15633ce8b840d01fecff49a6acae8ace5685..c559e22cc2552e06191800352cfee558f4d64965 100644
|
| --- a/ui/file_manager/file_manager/foreground/js/file_manager_commands.js
|
| +++ b/ui/file_manager/file_manager/foreground/js/file_manager_commands.js
|
| @@ -657,75 +657,89 @@ CommandHandler.COMMANDS_['drive-hosted-settings'] = /** @type {Command} */ ({
|
| * Deletes selected files.
|
| * @type {Command}
|
| */
|
| -CommandHandler.COMMANDS_['delete'] = /** @type {Command} */ ({
|
| +CommandHandler.COMMANDS_['delete'] = (function() {
|
| /**
|
| - * @param {!Event} event Command event.
|
| - * @param {!FileManager} fileManager FileManager to use.
|
| + * @constructor
|
| + * @implements {Command}
|
| */
|
| - execute: function(event, fileManager) {
|
| - var entries = CommandUtil.getCommandEntries(event.target);
|
| + var DeleteCommand = function() {};
|
|
|
| - // Execute might be called without a call of canExecute method, e.g. called
|
| - // directly from code. Double check here not to delete undeletable entries.
|
| - if (this.containsFakeOrRootEntry_(entries, fileManager) ||
|
| - this.containsReadOnlyEntry_(entries, fileManager))
|
| - return;
|
| + DeleteCommand.prototype = {
|
| + /**
|
| + * @param {!Event} event Command event.
|
| + * @param {!FileManager} fileManager FileManager to use.
|
| + */
|
| + execute: function(event, fileManager) {
|
| + var entries = CommandUtil.getCommandEntries(event.target);
|
| +
|
| + // Execute might be called without a call of canExecute method,
|
| + // e.g. called directly from code. Double check here not to delete
|
| + // undeletable entries.
|
| + if (this.containsFakeOrRootEntry_(entries, fileManager) ||
|
| + this.containsReadOnlyEntry_(entries, fileManager))
|
| + return;
|
| +
|
| + var message = entries.length === 1 ?
|
| + strf('GALLERY_CONFIRM_DELETE_ONE', entries[0].name) :
|
| + strf('GALLERY_CONFIRM_DELETE_SOME', entries.length);
|
| +
|
| + fileManager.ui.deleteConfirmDialog.show(message, function() {
|
| + fileManager.fileOperationManager.deleteEntries(entries);
|
| + }, null, null);
|
| + },
|
|
|
| - var message = entries.length === 1 ?
|
| - strf('GALLERY_CONFIRM_DELETE_ONE', entries[0].name) :
|
| - strf('GALLERY_CONFIRM_DELETE_SOME', entries.length);
|
| + /**
|
| + * @param {!Event} event Command event.
|
| + * @param {!FileManager} fileManager FileManager to use.
|
| + */
|
| + canExecute: function(event, fileManager) {
|
| + var entries = CommandUtil.getCommandEntries(event.target);
|
|
|
| - fileManager.ui.deleteConfirmDialog.show(message, function() {
|
| - fileManager.fileOperationManager.deleteEntries(entries);
|
| - }, null, null);
|
| - },
|
| - /**
|
| - * @param {!Event} event Command event.
|
| - * @param {!FileManager} fileManager FileManager to use.
|
| - */
|
| - canExecute: function(event, fileManager) {
|
| - var entries = CommandUtil.getCommandEntries(event.target);
|
| + // If entries contain fake or root entry, hide delete option.
|
| + if (this.containsFakeOrRootEntry_(entries, fileManager)) {
|
| + event.canExecute = false;
|
| + event.command.setHidden(true);
|
| + return;
|
| + }
|
|
|
| - // If entries contain fake or root entry, hide delete option.
|
| - if (this.containsFakeOrRootEntry_(entries, fileManager)) {
|
| - event.canExecute = false;
|
| - event.command.setHidden(true);
|
| - return;
|
| - }
|
| + event.canExecute = entries.length > 0 &&
|
| + !this.containsReadOnlyEntry_(entries, fileManager);
|
| + event.command.setHidden(false);
|
| + },
|
|
|
| - event.canExecute = entries.length > 0 &&
|
| - !this.containsReadOnlyEntry_(entries, fileManager);
|
| - event.command.setHidden(false);
|
| - },
|
| - /**
|
| - * @param {!Array<!Entry>} entries
|
| - * @param {!FileManager} fileManager
|
| - * @return {boolean} True if entries contain fake or root entry.
|
| - */
|
| - containsFakeOrRootEntry_: function(entries, fileManager) {
|
| - return entries.some(function(entry) {
|
| - if (util.isFakeEntry(entry))
|
| - return true;
|
| + /**
|
| + * @param {!Array<!Entry>} entries
|
| + * @param {!FileManager} fileManager
|
| + * @return {boolean} True if entries contain fake or root entry.
|
| + */
|
| + containsFakeOrRootEntry_: function(entries, fileManager) {
|
| + return entries.some(function(entry) {
|
| + if (util.isFakeEntry(entry))
|
| + return true;
|
|
|
| - var volumeInfo = fileManager.volumeManager.getVolumeInfo(entry);
|
| - if (!volumeInfo)
|
| - return true;
|
| + var volumeInfo = fileManager.volumeManager.getVolumeInfo(entry);
|
| + if (!volumeInfo)
|
| + return true;
|
|
|
| - return volumeInfo.displayRoot === entry;
|
| - });
|
| - },
|
| - /**
|
| - * @param {!Array<!Entry>} entries
|
| - * @param {!FileManager} fileManager
|
| - * @return {boolean} True if entries contain read only entry.
|
| - */
|
| - containsReadOnlyEntry_: function(entries, fileManager) {
|
| - return entries.some(function(entry) {
|
| - var locationInfo = fileManager.volumeManager.getLocationInfo(entry);
|
| - return locationInfo && locationInfo.isReadOnly;
|
| - });
|
| - }
|
| -});
|
| + return volumeInfo.displayRoot === entry;
|
| + });
|
| + },
|
| +
|
| + /**
|
| + * @param {!Array<!Entry>} entries
|
| + * @param {!FileManager} fileManager
|
| + * @return {boolean} True if entries contain read only entry.
|
| + */
|
| + containsReadOnlyEntry_: function(entries, fileManager) {
|
| + return entries.some(function(entry) {
|
| + var locationInfo = fileManager.volumeManager.getLocationInfo(entry);
|
| + return locationInfo && locationInfo.isReadOnly;
|
| + });
|
| + }
|
| + };
|
| +
|
| + return new DeleteCommand();
|
| +})();
|
|
|
| /**
|
| * Pastes files from clipboard.
|
| @@ -1394,8 +1408,6 @@ CommandHandler.COMMANDS_['configure'] = (function() {
|
| };
|
|
|
| ConfigureCommand.prototype = {
|
| - __proto__: Command.prototype,
|
| -
|
| /**
|
| * @param {EventTarget} element
|
| * @param {!FileManager} fileManager
|
|
|