aboutsummaryrefslogtreecommitdiffstats
path: root/apps/files/src/actions/openInFilesAction.ts
diff options
context:
space:
mode:
Diffstat (limited to 'apps/files/src/actions/openInFilesAction.ts')
-rw-r--r--apps/files/src/actions/openInFilesAction.ts38
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,
+})