From 9c86665ef400b82487f48374bf11bbe6628cbe28 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Thu, 20 Nov 2014 16:53:32 +0100 Subject: [PATCH] Dont show the delete button for selected files if one of the selected files is not deletable --- apps/files/js/filelist.js | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index bec0155e90..6ffc10cdcb 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -526,7 +526,8 @@ mimetype: $el.attr('data-mime'), type: $el.attr('data-type'), size: parseInt($el.attr('data-size'), 10), - etag: $el.attr('data-etag') + etag: $el.attr('data-etag'), + permissions: parseInt($el.attr('data-permissions'), 10) }; }, @@ -1636,7 +1637,7 @@ this.$el.find('.selectedActions').addClass('hidden'); } else { - canDelete = (this.getDirectoryPermissions() & OC.PERMISSION_DELETE); + canDelete = (this.getDirectoryPermissions() & OC.PERMISSION_DELETE) && this.isSelectedDeletable(); this.$el.find('.selectedActions').removeClass('hidden'); this.$el.find('#headerSize a>span:first').text(OC.Util.humanFileSize(summary.totalSize)); var selection = ''; @@ -1656,6 +1657,15 @@ } }, + /** + * Check whether all selected files are deletable + */ + isSelectedDeletable: function() { + return _.reduce(this.getSelectedFiles(), function(deletable, file) { + return deletable && (file.permissions & OC.PERMISSION_DELETE); + }, true); + }, + /** * Returns whether all files are selected * @return true if all files are selected, false otherwise