Room export fixes

This commit is contained in:
N Pex 2022-05-24 13:15:48 +00:00
parent 2241d8f3a0
commit 277d6ceca6
5 changed files with 134 additions and 114 deletions

View file

@ -16,7 +16,13 @@ export default {
mounted() {
this.$matrix.on("Room.timeline", this.pollMixinOnEvent);
this.pollQuestion =
(this.event && this.event.getContent()["org.matrix.msc3381.poll.start"]["question"]["body"]) || "";
(this.event &&
this.event.getContent()["m.poll.start"] &&
this.event.getContent()["m.poll.start"]["question"]["body"]) ||
(this.event &&
this.event.getContent()["org.matrix.msc3381.poll.start"] &&
this.event.getContent()["org.matrix.msc3381.poll.start"]["question"]["body"]) ||
"";
this.updateAnswers();
},
destroyed() {
@ -34,7 +40,12 @@ export default {
},
methods: {
updateAnswers() {
let answers = (this.event && this.event.getContent()["org.matrix.msc3381.poll.start"]["answers"]) || [];
let answers =
(this.event && this.event.getContent()["m.poll.start"] && this.event.getContent()["m.poll.start"]["answers"]) ||
(this.event &&
this.event.getContent()["org.matrix.msc3381.poll.start"] &&
this.event.getContent()["org.matrix.msc3381.poll.start"]["answers"]) ||
[];
var answerMap = {};
var answerArray = [];
answers.forEach((a) => {
@ -45,17 +56,21 @@ export default {
});
// Kind of poll
this.pollIsDisclosed =
(this.event &&
this.event.getContent()["org.matrix.msc3381.poll.start"]["kind"] != "org.matrix.msc3381.poll.undisclosed") ||
false;
this.pollIsDisclosed = false;
if (this.event) {
if (this.event.getContent()["m.poll.start"]) {
this.pollIssDisclosed = this.event.getContent()["m.poll.start"]["kind"] != "m.poll.undisclosed" || false;
} else if (this.event.getContent()["org.matrix.msc3381.poll.start"]) {
this.pollIssDisclosed =
this.event.getContent()["org.matrix.msc3381.poll.start"]["kind"] != "org.matrix.msc3381.poll.undisclosed" ||
false;
}
}
// Look for poll end
this.pollEndRelations = this.timelineSet.getRelationsForEvent(
this.event.getId(),
"m.reference",
"org.matrix.msc3381.poll.end"
);
this.pollEndRelations =
this.timelineSet.getRelationsForEvent(this.event.getId(), "m.reference", "m.poll.end") ||
this.timelineSet.getRelationsForEvent(this.event.getId(), "m.reference", "org.matrix.msc3381.poll.end");
if (this.pollEndRelations) {
const endMessages = this.pollEndRelations.getRelations() || [];
if (endMessages.length > 0) {
@ -64,11 +79,9 @@ export default {
}
// Process votes
this.pollResponseRelations = this.timelineSet.getRelationsForEvent(
this.event.getId(),
"m.reference",
"org.matrix.msc3381.poll.response"
);
this.pollResponseRelations =
this.timelineSet.getRelationsForEvent(this.event.getId(), "m.reference", "m.poll.response") ||
this.timelineSet.getRelationsForEvent(this.event.getId(), "m.reference", "org.matrix.msc3381.poll.response");
var userVotes = {};
if (this.pollResponseRelations) {
const votes = this.pollResponseRelations.getRelations() || [];
@ -78,7 +91,11 @@ export default {
continue; // Invalid vote, after poll was closed.
}
const sender = vote.getSender();
const answersFromThisUser = vote.getContent()["org.matrix.msc3381.poll.response"]["answers"] || [];
const answersFromThisUser =
(vote.getContent()["m.poll.response"] && vote.getContent()["m.poll.response"]["answers"]) ||
(vote.getContent()["org.matrix.msc3381.poll.response"] &&
vote.getContent()["org.matrix.msc3381.poll.response"]["answers"]) ||
[];
if (answersFromThisUser.length == 0) {
delete userVotes[sender];
} else {
@ -158,7 +175,7 @@ export default {
return; // Not for this room
}
this.$matrix.matrixClient.decryptEventIfNeeded(event).then(() => {
if (event.getType().startsWith("org.matrix.msc3381.poll.")) {
if (event.getType().startsWith("m.poll.") || event.getType().startsWith("org.matrix.msc3381.poll.")) {
this.updateAnswers();
}
});