summaryrefslogtreecommitdiffstats
path: root/apps/files_trashbin/js/filelist.js
diff options
context:
space:
mode:
Diffstat (limited to 'apps/files_trashbin/js/filelist.js')
-rw-r--r--apps/files_trashbin/js/filelist.js126
1 files changed, 126 insertions, 0 deletions
diff --git a/apps/files_trashbin/js/filelist.js b/apps/files_trashbin/js/filelist.js
index 7795daf2775..6c9b345086a 100644
--- a/apps/files_trashbin/js/filelist.js
+++ b/apps/files_trashbin/js/filelist.js
@@ -75,4 +75,130 @@
$('#emptycontent').toggleClass('hidden', exists);
$('#filestable th').toggleClass('hidden', !exists);
};
+
+ var oldInit = FileList.initialize;
+ FileList.initialize = function() {
+ var result = oldInit.apply(this, arguments);
+ $('.undelete').click('click', FileList._onClickRestoreSelected);
+ return result;
+ };
+
+ FileList._removeCallback = function(result) {
+ if (result.status !== 'success') {
+ OC.dialogs.alert(result.data.message, t('files_trashbin', 'Error'));
+ }
+
+ var files = result.data.success;
+ var $el;
+ for (var i = 0; i < files.length; i++) {
+ $el = FileList.remove(OC.basename(files[i].filename), {updateSummary: false});
+ FileList.fileSummary.remove({type: $el.attr('data-type'), size: $el.attr('data-size')});
+ }
+ FileList.fileSummary.update();
+ FileList.updateEmptyContent();
+ enableActions();
+ }
+
+ FileList._onClickRestoreSelected = function(event) {
+ event.preventDefault();
+ var allFiles = $('#select_all').is(':checked');
+ var files = [];
+ var params = {};
+ disableActions();
+ if (allFiles) {
+ FileList.showMask();
+ params = {
+ allfiles: true,
+ dir: FileList.getCurrentDirectory()
+ };
+ }
+ else {
+ files = FileList.getSelectedFiles('name');
+ for (var i = 0; i < files.length; i++) {
+ var deleteAction = FileList.findFileEl(files[i]).children("td.date").children(".action.delete");
+ deleteAction.removeClass('delete-icon').addClass('progress-icon');
+ }
+ params = {
+ files: JSON.stringify(files),
+ dir: FileList.getCurrentDirectory()
+ };
+ }
+
+ $.post(OC.filePath('files_trashbin', 'ajax', 'undelete.php'),
+ params,
+ function(result) {
+ if (allFiles) {
+ if (result.status !== 'success') {
+ OC.dialogs.alert(result.data.message, t('files_trashbin', 'Error'));
+ }
+ FileList.hideMask();
+ // simply remove all files
+ FileList.update('');
+ enableActions();
+ }
+ else {
+ FileList._removeCallback(result);
+ }
+ }
+ );
+ };
+
+ FileList._onClickDeleteSelected = function(event) {
+ event.preventDefault();
+ var allFiles = $('#select_all').is(':checked');
+ var files = [];
+ var params = {};
+ if (allFiles) {
+ params = {
+ allfiles: true,
+ dir: FileList.getCurrentDirectory()
+ };
+ }
+ else {
+ files = FileList.getSelectedFiles('name');
+ params = {
+ files: JSON.stringify(files),
+ dir: FileList.getCurrentDirectory()
+ };
+ }
+
+ disableActions();
+ if (allFiles) {
+ FileList.showMask();
+ }
+ else {
+ for (var i = 0; i < files.length; i++) {
+ var deleteAction = FileList.findFileEl(files[i]).children("td.date").children(".action.delete");
+ deleteAction.removeClass('delete-icon').addClass('progress-icon');
+ }
+ }
+
+ $.post(OC.filePath('files_trashbin', 'ajax', 'delete.php'),
+ params,
+ function(result) {
+ if (allFiles) {
+ if (result.status !== 'success') {
+ OC.dialogs.alert(result.data.message, t('files_trashbin', 'Error'));
+ }
+ FileList.hideMask();
+ // simply remove all files
+ FileList.setFiles([]);
+ enableActions();
+ }
+ else {
+ FileList._removeCallback(result);
+ }
+ }
+ );
+ };
+
+ var oldClickFile = FileList._onClickFile;
+ FileList._onClickFile = function(event) {
+ var mime = $(this).parent().parent().data('mime');
+ if (mime !== 'httpd/unix-directory') {
+ event.preventDefault();
+ }
+ return oldClickFile.apply(this, arguments);
+ };
+
})();