Chromium Code Reviews| Index: chrome/browser/resources/file_manager/js/photo/gallery.js |
| diff --git a/chrome/browser/resources/file_manager/js/photo/gallery.js b/chrome/browser/resources/file_manager/js/photo/gallery.js |
| index e26f8ce08ea1f651ac01237c6adf06a0a73c749f..7e706acb4d65dea7e66f94ad2ef84dfe45bacbd4 100644 |
| --- a/chrome/browser/resources/file_manager/js/photo/gallery.js |
| +++ b/chrome/browser/resources/file_manager/js/photo/gallery.js |
| @@ -370,14 +370,42 @@ Gallery.prototype.toggleMode_ = function(opt_callback) { |
| */ |
| Gallery.prototype.onDelete_ = function() { |
| // Clone the sorted selected indexes array. |
| - var toRemove = this.selectionModel_.selectedIndexes.slice(); |
| - this.selectionModel_.unselectAll(); |
| - |
| - // Remove items starting from the highest index. |
| - while (toRemove.length) |
| - this.dataModel_.splice(toRemove.pop(), 1); |
| + var indexesToRemove = this.selectionModel_.selectedIndexes.slice(); |
| + if (!indexesToRemove.length) |
| + return; |
| - // TODO: delete actual files. |
| + /* TODO(dgozman): implement Undo delete. */ |
| + |
| + var itemsToRemove = this.getSelectedItems(); |
| + var plural = itemsToRemove.length > 1; |
| + var param = plural ? itemsToRemove.length : itemsToRemove[0].getFileName(); |
| + |
| + cr.ui.dialogs.BaseDialog.OK_LABEL = this.displayStringFunction_('OK_LABEL'); |
| + cr.ui.dialogs.BaseDialog.CANCEL_LABEL = |
| + this.displayStringFunction_('CANCEL_LABEL'); |
| + var confirm = new cr.ui.dialogs.ConfirmDialog(this.container_); |
| + confirm.show(this.displayStringFunction_( |
| + plural ? 'CONFIRM_DELETE_SOME' : 'CONFIRM_DELETE_ONE', param), |
| + function() { |
| + this.selectionModel_.unselectAll(); |
| + |
| + // Remove items from the data model, starting from the highest index. |
| + while (indexesToRemove.length) |
| + this.dataModel_.splice(indexesToRemove.pop(), 1); |
| + |
| + // Delete actual files. |
| + var deleteNext = function() { |
|
dgozman
2012/09/07 10:02:20
You can define this function outside callback to r
Vladislav Kaznacheev
2012/09/07 12:30:16
Done.
|
| + var item = itemsToRemove.pop(); |
| + var url = item.getUrl(); |
| + webkitResolveLocalFileSystemURL(url, |
| + function(entry) { |
| + entry.remove(deleteNext, |
| + util.flog('Error deleting ' + url, deleteNext)); |
| + }, |
| + util.flog('Error resolving ' + url, deleteNext)); |
| + }.bind(this); |
|
dgozman
2012/09/07 10:02:20
No need to bind here.
Vladislav Kaznacheev
2012/09/07 12:30:16
Done.
|
| + deleteNext(); |
| + }.bind(this)); |
| }; |
| /** |