diff options
Diffstat (limited to 'apps/files/src/actions/openInFilesAction.ts')
-rw-r--r-- | apps/files/src/actions/openInFilesAction.ts | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/apps/files/src/actions/openInFilesAction.ts b/apps/files/src/actions/openInFilesAction.ts new file mode 100644 index 00000000000..9e10b1ac74e --- /dev/null +++ b/apps/files/src/actions/openInFilesAction.ts @@ -0,0 +1,38 @@ +/** + * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + +import type { Node } from '@nextcloud/files' + +import { t } from '@nextcloud/l10n' +import { FileType, FileAction, DefaultType } from '@nextcloud/files' +import { VIEW_ID as SEARCH_VIEW_ID } from '../views/search' + +export const action = new FileAction({ + id: 'open-in-files', + displayName: () => t('files', 'Open in Files'), + iconSvgInline: () => '', + + enabled(nodes, view) { + return view.id === 'recent' || view.id === SEARCH_VIEW_ID + }, + + async exec(node: Node) { + let dir = node.dirname + if (node.type === FileType.Folder) { + dir = dir + '/' + node.basename + } + + window.OCP.Files.Router.goToRoute( + null, // use default route + { view: 'files', fileid: String(node.fileid) }, + { dir, openfile: 'true' }, + ) + return null + }, + + // Before openFolderAction + order: -1000, + default: DefaultType.HIDDEN, +}) |