parent
cafe465d3a
commit
50ae081ea8
2 changed files with 27 additions and 0 deletions
|
|
@ -16,6 +16,7 @@
|
||||||
v-on:addreaction="addReaction"
|
v-on:addreaction="addReaction"
|
||||||
v-on:addreply="addReply(selectedEvent)"
|
v-on:addreply="addReply(selectedEvent)"
|
||||||
v-on:edit="edit(selectedEvent)"
|
v-on:edit="edit(selectedEvent)"
|
||||||
|
v-on:download="download(selectedEvent)"
|
||||||
:event="selectedEvent"
|
:event="selectedEvent"
|
||||||
:incoming="selectedEvent.getSender() != $matrix.currentUserId"
|
:incoming="selectedEvent.getSender() != $matrix.currentUserId"
|
||||||
/>
|
/>
|
||||||
|
|
@ -730,6 +731,21 @@ export default {
|
||||||
this.$refs.messageInput.focus();
|
this.$refs.messageInput.focus();
|
||||||
},
|
},
|
||||||
|
|
||||||
|
download(event) {
|
||||||
|
util
|
||||||
|
.getAttachment(this.$matrix.matrixClient, event)
|
||||||
|
.then((url) => {
|
||||||
|
const link = document.createElement("a");
|
||||||
|
link.href = url;
|
||||||
|
link.download = event.getContent().body || "Download";
|
||||||
|
link.click();
|
||||||
|
URL.revokeObjectURL(url);
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
console.log("Failed to fetch attachment: ", err);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
cancelEditReply() {
|
cancelEditReply() {
|
||||||
this.currentInput = "";
|
this.currentInput = "";
|
||||||
this.editedEvent = null;
|
this.editedEvent = null;
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,9 @@
|
||||||
<v-btn v-if="isEditable" icon @click.stop="edit" class="ma-0 pa-0">
|
<v-btn v-if="isEditable" icon @click.stop="edit" class="ma-0 pa-0">
|
||||||
<v-icon>edit</v-icon>
|
<v-icon>edit</v-icon>
|
||||||
</v-btn>
|
</v-btn>
|
||||||
|
<v-btn v-if="isDownloadable" icon @click.stop="download" class="ma-0 pa-0">
|
||||||
|
<v-icon>get_app</v-icon>
|
||||||
|
</v-btn>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
@ -36,6 +39,10 @@ export default {
|
||||||
computed: {
|
computed: {
|
||||||
isEditable() {
|
isEditable() {
|
||||||
return !this.incoming && this.event.getContent().msgtype == "m.text";
|
return !this.incoming && this.event.getContent().msgtype == "m.text";
|
||||||
|
},
|
||||||
|
isDownloadable() {
|
||||||
|
const msgtype = this.event.getContent().msgtype;
|
||||||
|
return ['m.video','m.audio','m.image','m.file'].includes(msgtype);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
@ -51,6 +58,10 @@ export default {
|
||||||
edit() {
|
edit() {
|
||||||
this.$emit("close");
|
this.$emit("close");
|
||||||
this.$emit("edit", {event:this.event});
|
this.$emit("edit", {event:this.event});
|
||||||
|
},
|
||||||
|
download() {
|
||||||
|
this.$emit("close");
|
||||||
|
this.$emit("download", {event:this.event});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue