diff --git a/packages/web-app-files/src/components/AppBar/CreateAndUpload.vue b/packages/web-app-files/src/components/AppBar/CreateAndUpload.vue index 707920e0fdb..21036f9a3cd 100644 --- a/packages/web-app-files/src/components/AppBar/CreateAndUpload.vue +++ b/packages/web-app-files/src/components/AppBar/CreateAndUpload.vue @@ -281,6 +281,8 @@ export default defineComponent({ resource = buildResource(resource) + this.$uppyService.$emit('uploadedFileFetched', file, resource) + // Update table only if the file was uploaded to the current directory if (fileIsInCurrentPath) { this.UPSERT_RESOURCE(resource) diff --git a/packages/web-app-files/src/views/FilesDrop.vue b/packages/web-app-files/src/views/FilesDrop.vue index 6d4d6d92382..774a0250d7c 100644 --- a/packages/web-app-files/src/views/FilesDrop.vue +++ b/packages/web-app-files/src/views/FilesDrop.vue @@ -53,6 +53,7 @@ export default { onMounted(() => { const filesSelectedSub = uppyService.subscribe('filesSelected', instance.onFilesSelected) + const uploadSuccessSub = uppyService.subscribe('uploadSuccess', instance.onFileSuccess) const uploadErrorSub = uppyService.subscribe('uploadError', instance.onFileError) uppyService.useDropTarget({ @@ -62,6 +63,7 @@ export default { instance.$on('beforeDestroy', () => { uppyService.unsubscribe('filesSelected', filesSelectedSub) + uppyService.unsubscribe('uploadSuccess', uploadSuccessSub) uppyService.unsubscribe('uploadError', uploadErrorSub) uppyService.removeDropTarget() }) @@ -162,6 +164,10 @@ export default { this.$uppyService.uploadFiles(uppyResources) }, + onFileSuccess(uppyResource) { + this.$uppyService.$emit('uploadedFileFetched', uppyResource, { name: uppyResource.name }) + }, + onFileError(error) { console.error(error) this.showMessage({ diff --git a/packages/web-runtime/src/components/UploadInfo.vue b/packages/web-runtime/src/components/UploadInfo.vue index 6fc78c7cb90..d5e7830d071 100644 --- a/packages/web-runtime/src/components/UploadInfo.vue +++ b/packages/web-runtime/src/components/UploadInfo.vue @@ -120,19 +120,10 @@ export default { this.closeInfo() } }) - this.$uppyService.subscribe('uploadSuccess', (file) => { - // @TODO we need the storage ID here... maybe fetch the file via DAV and call buildResources()? - - let path = file.meta.currentFolder - if (file.meta.relativePath) { - path += file.meta.relativePath - } - path += file.name - + this.$uppyService.subscribe('uploadedFileFetched', (uppyResource, fetchedFile) => { this.successfulUploads.push({ - ...file, - path, - targetRoute: file.meta.route + ...fetchedFile, + targetRoute: uppyResource.meta.route }) }) }, @@ -169,7 +160,8 @@ export default { name: targetRoute.name, query: targetRoute.query, params: { - ...(storageId && path && { storageId }) + ...(storageId && path && { storageId }), + storage: targetRoute.params?.storage } }