From f4bc852db3376f5e602c1970fe76b8698e26f32e Mon Sep 17 00:00:00 2001 From: Morris Jobke Date: Thu, 23 Apr 2015 14:33:19 +0200 Subject: Show hint if there is no delete permission * add class .no-permission which shows the default delete icon * fixes #15172 * add unit test for no permission and for delete permission --- apps/files/js/fileactions.js | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'apps/files/js/fileactions.js') diff --git a/apps/files/js/fileactions.js b/apps/files/js/fileactions.js index b335f1f6432..1956fda0077 100644 --- a/apps/files/js/fileactions.js +++ b/apps/files/js/fileactions.js @@ -288,9 +288,15 @@ } else if (mountType === 'shared-root') { deleteTitle = t('files', 'Unshare'); } + var cssClasses = 'action delete icon-delete'; + if((context.$file.data('permissions') & OC.PERMISSION_DELETE) === 0) { + // add css class no-permission to delete icon + cssClasses += ' no-permission'; + deleteTitle = t('files', 'No permission to delete'); + } var $actionLink = $('' + + '" class="' +cssClasses + '">' + '' + escapeHTML(deleteTitle) + '' + '' ); @@ -426,12 +432,17 @@ name: 'Delete', displayName: '', mime: 'all', - permissions: OC.PERMISSION_DELETE, + // permission is READ because we show a hint instead if there is no permission + permissions: OC.PERMISSION_READ, icon: function() { return OC.imagePath('core', 'actions/delete'); }, render: _.bind(this._renderDeleteAction, this), actionHandler: function(fileName, context) { + // if there is no permission to delete do nothing + if((context.$file.data('permissions') & OC.PERMISSION_DELETE) === 0) { + return; + } context.fileList.do_delete(fileName, context.dir); $('.tipsy').remove(); } -- cgit v1.2.3