Merge pull request #1652 from nextcloud/enh/attachmentProgressIndicator

Progress indicator for attachment uploads
This commit is contained in:
Julius Härtl
2020-04-07 12:07:16 +02:00
committed by GitHub
7 changed files with 80 additions and 39 deletions

View File

@@ -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 (const file of files) {
this.onLocalAttachmentSelected(file)
}
event.dataTransfer.value = ''
},
},

View File

@@ -28,13 +28,24 @@
<input ref="localAttachments"
type="file"
style="display: none;"
multiple
@change="handleUploadFile">
<div class="attachment-list">
<ul>
<li v-for="attachment in uploadQueue" :key="attachment.name" class="attachment">
<a class="fileicon" :style="mimetypeForAttachment('none')" />
<div class="details">
<a>
<div class="filename">
<span class="basename">{{ attachment.name }}</span>
</div>
<progress :value="attachment.progress" max="100" />
</a>
</div>
</li>
<li v-for="attachment in attachments"
:key="attachment.id"
class="attachment"
style="display: flex;">
class="attachment">
<a class="fileicon" :style="mimetypeForAttachment(attachment.extendedData.mimetype)" :href="attachmentUrl(attachment)" />
<div class="details">
<a :href="attachmentUrl(attachment)" target="_blank">
@@ -109,7 +120,7 @@ export default {
}
},
attachments() {
return this.$store.getters.attachmentsByCard(this.card.id)
return [...this.$store.getters.attachmentsByCard(this.card.id)].sort((a, b) => b.id - a.id)
},
formattedFileSize() {
return (filesize) => formatFileSize(filesize)
@@ -134,22 +145,11 @@ export default {
this.$store.dispatch('fetchAttachments', this.card.id)
},
methods: {
dragEnter() {
},
dragLeave() {
},
handleDropFiles(event) {
this.isDraggingOver = false
if (this.isReadOnly) {
return
}
this.onLocalAttachmentSelected(event.dataTransfer.files[0])
event.dataTransfer.value = ''
},
handleUploadFile(event) {
this.onLocalAttachmentSelected(event.target.files[0])
const files = event.target.files ?? []
for (const file of files) {
this.onLocalAttachmentSelected(file)
}
event.target.value = ''
},
clickAddNewAttachmment() {
@@ -214,6 +214,7 @@ export default {
li.attachment {
display: flex;
padding: 3px;
min-height: 44px;
&.deleted {
opacity: .5;