From c998f5ebba6c05c49d723272deb7aa80603dd21c Mon Sep 17 00:00:00 2001 From: fenn-cs Date: Mon, 24 Jun 2024 10:19:53 +0100 Subject: fix(ExternalSharing): Handle template share from external sources The new sharing flow requires or implies that users should edit share before creating. External sources should not created the share IF we would upon sharing details tab on first request. Signed-off-by: fenn-cs --- apps/files_sharing/src/mixins/ShareDetails.js | 11 ++++++----- apps/files_sharing/src/views/SharingDetailsTab.vue | 6 ++++++ 2 files changed, 12 insertions(+), 5 deletions(-) (limited to 'apps/files_sharing/src') diff --git a/apps/files_sharing/src/mixins/ShareDetails.js b/apps/files_sharing/src/mixins/ShareDetails.js index 6c50440ff24..de0bf875f16 100644 --- a/apps/files_sharing/src/mixins/ShareDetails.js +++ b/apps/files_sharing/src/mixins/ShareDetails.js @@ -15,13 +15,14 @@ export default { // TODO : Better name/interface for handler required // For example `externalAppCreateShareHook` with proper documentation if (shareRequestObject.handler) { + const handlerInput = {} if (this.suggestions) { - shareRequestObject.suggestions = this.suggestions - shareRequestObject.fileInfo = this.fileInfo - shareRequestObject.query = this.query + handlerInput.suggestions = this.suggestions + handlerInput.fileInfo = this.fileInfo + handlerInput.query = this.query } - share = await shareRequestObject.handler(shareRequestObject) - share = new Share(share) + const externalShareRequestObject = await shareRequestObject.handler(handlerInput) + share = this.mapShareRequestToShareObject(externalShareRequestObject) } else { share = this.mapShareRequestToShareObject(shareRequestObject) } diff --git a/apps/files_sharing/src/views/SharingDetailsTab.vue b/apps/files_sharing/src/views/SharingDetailsTab.vue index 8254e84b4a3..0fbd70f607d 100644 --- a/apps/files_sharing/src/views/SharingDetailsTab.vue +++ b/apps/files_sharing/src/views/SharingDetailsTab.vue @@ -279,6 +279,8 @@ import ShareTypes from '../mixins/ShareTypes.js' import SharesMixin from '../mixins/SharesMixin.js' import logger from '../services/logger.ts' +import { subscribe } from '@nextcloud/event-bus' + import { ATOMIC_PERMISSIONS, BUNDLED_PERMISSIONS, @@ -735,6 +737,7 @@ export default { mounted() { this.$refs.quickPermissions?.querySelector('input:checked')?.focus() + subscribe('files_sharing:external:add-share', this.handleExistingShareFromExternalSource) }, methods: { @@ -1007,6 +1010,9 @@ export default { return null // Or a default icon component if needed } }, + handleExistingShareFromExternalSource(share) { + logger.info('Existing share from external source/app', { share }) + }, }, } -- cgit v1.2.3