summaryrefslogtreecommitdiffstats
path: root/apps/files
diff options
context:
space:
mode:
authorFerdinand Thiessen <opensource@fthiessen.de>2024-05-30 18:44:02 +0200
committernextcloud-command <nextcloud-command@users.noreply.github.com>2024-06-04 14:23:52 +0000
commitb84820387c58e3ba5fd680ac5a6a6836934a3561 (patch)
treeea7c085cf4f77693f01a57b5bf99acf3b48ce97d /apps/files
parent86635c396586fc15eaf482b9fc3e68ade986c5a5 (diff)
downloadnextcloud-server-b84820387c58e3ba5fd680ac5a6a6836934a3561.tar.gz
nextcloud-server-b84820387c58e3ba5fd680ac5a6a6836934a3561.zip
fix(files): Only execute default action if there is an action to perform
Some files do not have a default action (can not be viewed and only downloaded). If the `openfile` query is set on them the `handleOpenFile` will throw an error. Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de> Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
Diffstat (limited to 'apps/files')
-rw-r--r--apps/files/src/components/FilesListVirtual.vue18
1 files changed, 11 insertions, 7 deletions
diff --git a/apps/files/src/components/FilesListVirtual.vue b/apps/files/src/components/FilesListVirtual.vue
index d31330f0950..50b42b3f094 100644
--- a/apps/files/src/components/FilesListVirtual.vue
+++ b/apps/files/src/components/FilesListVirtual.vue
@@ -274,14 +274,18 @@ export default defineComponent({
logger.debug('Opening file ' + node.path, { node })
this.openFileId = fileId
- getFileActions()
- .filter(action => !action.enabled || action.enabled([node], this.currentView))
+ const defaultAction = getFileActions()
+ // Get only default actions (visible and hidden)
+ .filter(action => !!action?.default)
+ // Find actions that are either always enabled or enabled for the current node
+ .filter((action) => !action.enabled || action.enabled([node], this.currentView))
+ // Sort enabled default actions by order
.sort((a, b) => (a.order || 0) - (b.order || 0))
- .filter(action => !!action?.default)[0].exec(node, this.currentView, this.currentFolder.path)
- },
-
- getFileId(node) {
- return node.fileid
+ // Get the first one
+ .at(0)
+ // Some file types do not have a default action (e.g. they can only be downloaded)
+ // So if there is an enabled default action, so execute it
+ defaultAction?.exec(node, this.currentView, this.currentFolder.path)
},
onDragOver(event: DragEvent) {