From f28d933acc2d97021c69be79c7f2238cbaac419f Mon Sep 17 00:00:00 2001 From: skjnldsv Date: Wed, 17 Jul 2024 16:48:47 +0200 Subject: feat(files_sharing): add public name prompt for files requests Signed-off-by: skjnldsv --- .../src/components/NewFileRequestDialog.vue | 14 +-- apps/files_sharing/src/public-file-request.ts | 23 ++++ apps/files_sharing/src/views/PublicAuthPrompt.vue | 136 +++++++++++++++++++++ 3 files changed, 166 insertions(+), 7 deletions(-) create mode 100644 apps/files_sharing/src/public-file-request.ts create mode 100644 apps/files_sharing/src/views/PublicAuthPrompt.vue (limited to 'apps/files_sharing/src') diff --git a/apps/files_sharing/src/components/NewFileRequestDialog.vue b/apps/files_sharing/src/components/NewFileRequestDialog.vue index 398fd976f02..4c476af9bc8 100644 --- a/apps/files_sharing/src/components/NewFileRequestDialog.vue +++ b/apps/files_sharing/src/components/NewFileRequestDialog.vue @@ -107,7 +107,7 @@ @click="onFinish"> {{ finishButtonLabel }} @@ -193,7 +193,6 @@ export default defineComponent({ return { currentStep: STEP.FIRST, loading: false, - success: false, destination: this.context.path || '/', label: '', @@ -264,11 +263,7 @@ export default defineComponent({ showSuccess(t('files_sharing', 'File request created')) } - // Show success then close - this.success = true - setTimeout(() => { - this.$emit('close') - }, 3000) + this.$emit('close') }, async createShare() { @@ -343,6 +338,11 @@ export default defineComponent({ value: this.emails, key: 'emails', scope: 'shareWith', + }, + { + value: true, + key: 'enabled', + scope: 'fileRequest', }]), }) diff --git a/apps/files_sharing/src/public-file-request.ts b/apps/files_sharing/src/public-file-request.ts new file mode 100644 index 00000000000..763c4f60624 --- /dev/null +++ b/apps/files_sharing/src/public-file-request.ts @@ -0,0 +1,23 @@ +/** + * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + +import { spawnDialog } from '@nextcloud/dialogs' +import { defineAsyncComponent } from 'vue' +import logger from './services/logger' + +const nick = localStorage.getItem('nick') +const publicAuthPromptShown = localStorage.getItem('publicAuthPromptShown') + +// If we don't have a nickname or the public auth prompt hasn't been shown yet, show it +// We still show the prompt if the user has a nickname to double check +if (!nick || !publicAuthPromptShown) { + spawnDialog( + defineAsyncComponent(() => import('./views/PublicAuthPrompt.vue')), + {}, + () => localStorage.setItem('publicAuthPromptShown', 'true'), + ) +} else { + logger.debug(`Public auth prompt already shown. Current nickname is '${nick}'`) +} diff --git a/apps/files_sharing/src/views/PublicAuthPrompt.vue b/apps/files_sharing/src/views/PublicAuthPrompt.vue new file mode 100644 index 00000000000..a929afffefb --- /dev/null +++ b/apps/files_sharing/src/views/PublicAuthPrompt.vue @@ -0,0 +1,136 @@ + + + + + + -- cgit v1.2.3