diff options
Diffstat (limited to 'apps/files/src/views/FilesList.vue')
-rw-r--r-- | apps/files/src/views/FilesList.vue | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/apps/files/src/views/FilesList.vue b/apps/files/src/views/FilesList.vue index fdfbed6a4e3..47789e15347 100644 --- a/apps/files/src/views/FilesList.vue +++ b/apps/files/src/views/FilesList.vue @@ -45,6 +45,15 @@ multiple @failed="onUploadFail" @uploaded="onUpload" /> + + <NcButton v-for="action in enabledFileListActions" + :key="action.id" + @click="() => action.exec(currentView, dirContents, { folder: currentFolder })"> + <template #icon> + <NcIconSvgWrapper :svg="action.iconSvgInline(currentView)" /> + </template> + {{ action.displayName(currentView) }} + </NcButton> </template> </BreadCrumbs> @@ -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: { |