aboutsummaryrefslogtreecommitdiffstats
path: root/apps/files_sharing/src/files_newMenu/newFileRequest.ts
diff options
context:
space:
mode:
Diffstat (limited to 'apps/files_sharing/src/files_newMenu/newFileRequest.ts')
-rw-r--r--apps/files_sharing/src/files_newMenu/newFileRequest.ts42
1 files changed, 42 insertions, 0 deletions
diff --git a/apps/files_sharing/src/files_newMenu/newFileRequest.ts b/apps/files_sharing/src/files_newMenu/newFileRequest.ts
new file mode 100644
index 00000000000..1d58e3552a2
--- /dev/null
+++ b/apps/files_sharing/src/files_newMenu/newFileRequest.ts
@@ -0,0 +1,42 @@
+/**
+ * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+import type { Entry, Folder, Node } from '@nextcloud/files'
+
+import { defineAsyncComponent } from 'vue'
+import { spawnDialog } from '@nextcloud/dialogs'
+import { translate as t } from '@nextcloud/l10n'
+import FileUploadSvg from '@mdi/svg/svg/file-upload-outline.svg?raw'
+
+import Config from '../services/ConfigService'
+import { isPublicShare } from '@nextcloud/sharing/public'
+const sharingConfig = new Config()
+
+const NewFileRequestDialogVue = defineAsyncComponent(() => import('../components/NewFileRequestDialog.vue'))
+
+export const EntryId = 'file-request'
+
+export const entry = {
+ id: EntryId,
+ displayName: t('files_sharing', 'Create file request'),
+ iconSvgInline: FileUploadSvg,
+ order: 10,
+ enabled(): boolean {
+ // not on public shares
+ if (isPublicShare()) {
+ return false
+ }
+ if (!sharingConfig.isPublicUploadEnabled) {
+ return false
+ }
+ // We will check for the folder permission on the dialog
+ return sharingConfig.isPublicShareAllowed
+ },
+ async handler(context: Folder, content: Node[]) {
+ spawnDialog(NewFileRequestDialogVue, {
+ context,
+ content,
+ })
+ },
+} as Entry