From c8003e480b2320c998d7c088eeeaac1a72fe2af2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julius=20H=C3=A4rtl?= Date: Thu, 16 May 2024 09:55:01 +0200 Subject: [PATCH] fix: Keep download action for files and hide only for relevant files MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Julius Härtl --- apps/files/js/fileactions.js | 14 ++++++++++++++ apps/files/js/fileactionsmenu.js | 6 ++++++ apps/files_sharing/src/share.js | 13 ------------- 3 files changed, 20 insertions(+), 13 deletions(-) diff --git a/apps/files/js/fileactions.js b/apps/files/js/fileactions.js index ec09ec1bb8c..fc79d63687f 100644 --- a/apps/files/js/fileactions.js +++ b/apps/files/js/fileactions.js @@ -653,6 +653,13 @@ context.fileList.showFileBusyState(filename, true); OCA.Files.Files.handleDownload(url, disableLoadingState); } + }, + shouldRender: function(context) { + var fileData = context.fileInfoModel + if (_.isFunction(fileData.canDownload) && !fileData.canDownload()) { + return false; + } + return true; } }); @@ -707,6 +714,13 @@ } context.fileList.dirInfo.dirLastCopiedTo = targetPath; }, false, "httpd/unix-directory", true, actions, dialogDir); + }, + shouldRender: function(context) { + var fileData = context.fileInfoModel + if (_.isFunction(fileData.canDownload) && !fileData.canDownload()) { + return false; + } + return true; } }); diff --git a/apps/files/js/fileactionsmenu.js b/apps/files/js/fileactionsmenu.js index 7eecf209984..f6166c22e27 100644 --- a/apps/files/js/fileactionsmenu.js +++ b/apps/files/js/fileactionsmenu.js @@ -82,6 +82,12 @@ var defaultAction = fileActions.getCurrentDefaultFileAction(); var items = _.filter(actions, function(actionSpec) { + if (actionSpec.shouldRender) { + if (!actionSpec.shouldRender(self._context)) { + return false; + } + } + return !defaultAction || actionSpec.name !== defaultAction.name; }); items = _.map(items, function(item) { diff --git a/apps/files_sharing/src/share.js b/apps/files_sharing/src/share.js index a54f2f13698..c154170de58 100644 --- a/apps/files_sharing/src/share.js +++ b/apps/files_sharing/src/share.js @@ -86,19 +86,6 @@ import { getCapabilities } from '@nextcloud/capabilities' var tr = oldCreateRow.apply(this, arguments) var sharePermissions = OCA.Sharing.Util.getSharePermissions(fileData) - if (fileData.permissions === 0) { - // no permission, disabling sidebar - delete fileActions.actions.all.Comment - delete fileActions.actions.all.Details - delete fileActions.actions.all.Goto - } - if (_.isFunction(fileData.canDownload) && !fileData.canDownload()) { - delete fileActions.actions.all.Download - if ((fileData.permissions & OC.PERMISSION_UPDATE) === 0) { - // neither move nor copy is allowed, remove the action completely - delete fileActions.actions.all.MoveCopy - } - } tr.attr('data-share-permissions', sharePermissions) tr.attr('data-share-attributes', JSON.stringify(fileData.shareAttributes)) if (fileData.shareOwner) {