From d1fb691c899ae260dcbbb6f543dcee1e54df5dfa Mon Sep 17 00:00:00 2001 From: Christopher Ng Date: Fri, 8 Nov 2024 11:53:36 -0800 Subject: [PATCH] feat(files): Add support for file list actions Signed-off-by: Christopher Ng --- apps/files/src/views/FilesList.vue | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/apps/files/src/views/FilesList.vue b/apps/files/src/views/FilesList.vue index fdfbed6a4e31a..47789e1534754 100644 --- a/apps/files/src/views/FilesList.vue +++ b/apps/files/src/views/FilesList.vue @@ -45,6 +45,15 @@ multiple @failed="onUploadFail" @uploaded="onUpload" /> + + + + {{ action.displayName(currentView) }} + @@ -138,7 +147,7 @@ import type { UserConfig } from '../types.ts' import { getCapabilities } from '@nextcloud/capabilities' import { emit, subscribe, unsubscribe } from '@nextcloud/event-bus' -import { Folder, Node, Permission, sortNodes } from '@nextcloud/files' +import { Folder, Node, Permission, sortNodes, getFileListActions } from '@nextcloud/files' import { translate as t } from '@nextcloud/l10n' import { join, dirname, normalize } from 'path' import { showError, showWarning } from '@nextcloud/dialogs' @@ -430,6 +439,19 @@ export default defineComponent({ showCustomEmptyView() { return !this.loading && this.isEmptyDir && this.currentView?.emptyView !== undefined }, + + enabledFileListActions() { + const actions = getFileListActions() + const enabledActions = actions + .filter(action => { + if (action.enabled === undefined) { + return true + } + return action.enabled(this.currentView, this.dirContents, { folder: this.currentFolder }) + }) + .toSorted((a, b) => a.order - b.order) + return enabledActions + }, }, watch: {