From b75f4fc41a51c46be081f38a0cc958861726db39 Mon Sep 17 00:00:00 2001 From: Alex Yong Date: Fri, 29 Mar 2024 20:43:35 +0000 Subject: [PATCH] Display upload progress as file size / total file size during uploads --- frontend/src/api/tus.js | 8 ++++++++ .../src/components/prompts/UploadFiles.vue | 19 ++++++++++++++++++- frontend/src/store/getters.js | 4 +++- frontend/src/store/modules/upload.js | 4 +++- frontend/src/store/mutations.js | 8 ++++++++ 5 files changed, 40 insertions(+), 3 deletions(-) diff --git a/frontend/src/api/tus.js b/frontend/src/api/tus.js index 9764a532..4bae833d 100644 --- a/frontend/src/api/tus.js +++ b/frontend/src/api/tus.js @@ -28,6 +28,8 @@ export async function upload( let resourcePath = `${tusEndpoint}${filePath}?override=${overwrite}`; await createUpload(resourcePath); + let uploadSize = content.size || 0; // Get the size of the content being uploaded + store.commit('setTotalFileSize', store.state.upload.totalFileSize + uploadSize); return new Promise((resolve, reject) => { let upload = new tus.Upload(content, { @@ -182,6 +184,12 @@ function calcProgress(filePath) { store.commit("setETA", eta); store.commit("setUploadPercentage", uploadPercentage); + let totalUploaded = 0; + for (let file in CURRENT_UPLOAD_LIST) { + totalUploaded += CURRENT_UPLOAD_LIST[file].currentBytesUploaded; + } + store.commit('setTotalUploadedSize', totalUploaded); + fileData.initialBytesUploaded = fileData.currentBytesUploaded; fileData.lastProgressTimestamp = Date.now(); } diff --git a/frontend/src/components/prompts/UploadFiles.vue b/frontend/src/components/prompts/UploadFiles.vue index ef67c374..5261566d 100644 --- a/frontend/src/components/prompts/UploadFiles.vue +++ b/frontend/src/components/prompts/UploadFiles.vue @@ -11,6 +11,10 @@
{{ uploadSpeed.toFixed(2) }} MB/s
{{ formattedETA }} remaining
{{ uploadPercentage.toFixed(2) }}%
+
+ {{ formatFileSize(totalUploadedSize) }} / + {{ formatFileSize(totalFileSize) }} +