Room export fixes
This commit is contained in:
parent
2241d8f3a0
commit
277d6ceca6
5 changed files with 134 additions and 114 deletions
|
|
@ -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();
|
||||
}
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue