From 6cab67cb11f5f88a0543dc05d39ffa19d28fcdfa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakob=20R=C3=B6hrl?= Date: Wed, 1 Apr 2020 11:11:28 +0200 Subject: [PATCH 1/3] axios config MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jakob Röhrl --- src/mixins/attachmentUpload.js | 6 +++++- src/services/AttachmentApi.js | 11 ++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/mixins/attachmentUpload.js b/src/mixins/attachmentUpload.js index 95f93fd8d..ab6b16990 100644 --- a/src/mixins/attachmentUpload.js +++ b/src/mixins/attachmentUpload.js @@ -39,7 +39,11 @@ export default { bodyFormData.append('type', 'deck_file') bodyFormData.append('file', file) try { - await this.$store.dispatch('createAttachment', { cardId: this.cardId, formData: bodyFormData }) + await this.$store.dispatch('createAttachment', { cardId: this.cardId, + formData: bodyFormData, + onUploadProgress: (e) => { + console.log(e) + } }) } catch (err) { if (err.response.data.status === 409) { this.overwriteAttachment = err.response.data.data diff --git a/src/services/AttachmentApi.js b/src/services/AttachmentApi.js index 2849c913f..90b23c3dc 100644 --- a/src/services/AttachmentApi.js +++ b/src/services/AttachmentApi.js @@ -37,11 +37,20 @@ export class AttachmentApi { return response.data } - async createAttachment({ cardId, formData }) { + async createAttachment({ cardId, formData, onUploadProgress }) { + const config = { + onUploadProgress: function(progressEvent) { + const percentCompleted = Math.round((progressEvent.loaded * 100) / progressEvent.total) + console.log(percentCompleted) + }, + } + const response = await axios({ method: 'POST', url: this.url(`/cards/${cardId}/attachment`), data: formData, + ...config, + onUploadProgress, }) return response.data } From 22fb70f9572f28a91b73943284d122057f799f90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julius=20H=C3=A4rtl?= Date: Sat, 4 Apr 2020 21:24:15 +0200 Subject: [PATCH 2/3] Add progress indicator and basic uplaod queue MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Julius Härtl --- src/components/AttachmentDragAndDrop.vue | 11 +++----- .../card/CardSidebarTabAttachments.vue | 26 +++++++------------ src/mixins/attachmentUpload.js | 14 ++++++++-- src/services/AttachmentApi.js | 8 ------ src/store/attachment.js | 4 +-- 5 files changed, 28 insertions(+), 35 deletions(-) diff --git a/src/components/AttachmentDragAndDrop.vue b/src/components/AttachmentDragAndDrop.vue index 4c439424f..56f35384d 100644 --- a/src/components/AttachmentDragAndDrop.vue +++ b/src/components/AttachmentDragAndDrop.vue @@ -102,18 +102,15 @@ export default { }, }, methods: { - dragEnter() { - - }, - dragLeave() { - - }, handleDropFiles(event) { this.isDraggingOver = false if (this.isReadOnly) { return } - this.onLocalAttachmentSelected(event.dataTransfer.files[0]) + const files = event.dataTransfer.files + for (let file of files) { + this.onLocalAttachmentSelected(file) + } event.dataTransfer.value = '' }, }, diff --git a/src/components/card/CardSidebarTabAttachments.vue b/src/components/card/CardSidebarTabAttachments.vue index f22efe172..d0b985d17 100644 --- a/src/components/card/CardSidebarTabAttachments.vue +++ b/src/components/card/CardSidebarTabAttachments.vue @@ -28,9 +28,14 @@