aboutsummaryrefslogtreecommitdiffstats
path: root/apps/files_trashbin/src/actions/restoreAction.ts
diff options
context:
space:
mode:
Diffstat (limited to 'apps/files_trashbin/src/actions/restoreAction.ts')
-rw-r--r--apps/files_trashbin/src/actions/restoreAction.ts61
1 files changed, 0 insertions, 61 deletions
diff --git a/apps/files_trashbin/src/actions/restoreAction.ts b/apps/files_trashbin/src/actions/restoreAction.ts
deleted file mode 100644
index cda82fda466..00000000000
--- a/apps/files_trashbin/src/actions/restoreAction.ts
+++ /dev/null
@@ -1,61 +0,0 @@
-/**
- * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
- * SPDX-License-Identifier: AGPL-3.0-or-later
- */
-import { emit } from '@nextcloud/event-bus'
-import { generateRemoteUrl } from '@nextcloud/router'
-import { getCurrentUser } from '@nextcloud/auth'
-import { Permission, Node, View, registerFileAction, FileAction } from '@nextcloud/files'
-import { translate as t } from '@nextcloud/l10n'
-import axios from '@nextcloud/axios'
-import History from '@mdi/svg/svg/history.svg?raw'
-
-import logger from '../../../files/src/logger.js'
-import { encodePath } from '@nextcloud/paths'
-
-registerFileAction(new FileAction({
- id: 'restore',
- displayName() {
- return t('files_trashbin', 'Restore')
- },
- iconSvgInline: () => History,
-
- enabled(nodes: Node[], view) {
- // Only available in the trashbin view
- if (view.id !== 'trashbin') {
- return false
- }
-
- // Only available if all nodes have read permission
- return nodes.length > 0 && nodes
- .map(node => node.permissions)
- .every(permission => (permission & Permission.READ) !== 0)
- },
-
- async exec(node: Node) {
- try {
- const destination = generateRemoteUrl(encodePath(`dav/trashbin/${getCurrentUser()?.uid}/restore/${node.basename}`))
- await axios({
- method: 'MOVE',
- url: node.encodedSource,
- headers: {
- destination,
- },
- })
-
- // Let's pretend the file is deleted since
- // we don't know the restored location
- emit('files:node:deleted', node)
- return true
- } catch (error) {
- logger.error(error)
- return false
- }
- },
- async execBatch(nodes: Node[], view: View, dir: string) {
- return Promise.all(nodes.map(node => this.exec(node, view, dir)))
- },
-
- order: 1,
- inline: () => true,
-}))