+
-
{{ message }}
+
+ {{ message }}
+
@@ -23,6 +25,9 @@ export default {
computed: {
message() {
return this.text || this.$strings.MessagePleaseWait
+ },
+ hasSlotContent() {
+ return this.$slots.default && this.$slots.default.length > 0
}
}
}
diff --git a/client/pages/upload/index.vue b/client/pages/upload/index.vue
index 73ebef9c6..adc21ff90 100644
--- a/client/pages/upload/index.vue
+++ b/client/pages/upload/index.vue
@@ -297,6 +297,15 @@ export default {
ref.setUploadStatus(status)
}
},
+ updateItemCardProgress(index, progress) {
+ var ref = this.$refs[`itemCard-${index}`]
+ if (ref && ref.length) ref = ref[0]
+ if (!ref) {
+ console.error('Book card ref not found', index, this.$refs)
+ } else {
+ ref.setUploadProgress(progress)
+ }
+ },
async uploadItem(item) {
var form = new FormData()
form.set('title', item.title)
@@ -312,8 +321,20 @@ export default {
form.set(`${index++}`, file)
})
+ const config = {
+ onUploadProgress: (progressEvent) => {
+ if (progressEvent.lengthComputable) {
+ const progress = {
+ loaded: progressEvent.loaded,
+ total: progressEvent.total
+ }
+ this.updateItemCardProgress(item.index, progress)
+ }
+ }
+ }
+
return this.$axios
- .$post('/api/upload', form)
+ .$post('/api/upload', form, config)
.then(() => true)
.catch((error) => {
console.error('Failed to upload item', error)