Hide own joins for direct rooms
Move display options to a new "roomDisplayOptionsMixin". Rename (and invert) "showOnlyUserStatusMessages" to "showAllStatusMessages".
This commit is contained in:
parent
979e650f0d
commit
3630690b20
2 changed files with 34 additions and 20 deletions
|
|
@ -50,8 +50,10 @@ import RoomGuestAccessChanged from "./messages/RoomGuestAccessChanged.vue";
|
||||||
import RoomEncrypted from "./messages/RoomEncrypted.vue";
|
import RoomEncrypted from "./messages/RoomEncrypted.vue";
|
||||||
import RoomDeletionNotice from "./messages/RoomDeletionNotice.vue";
|
import RoomDeletionNotice from "./messages/RoomDeletionNotice.vue";
|
||||||
import DebugEvent from "./messages/DebugEvent.vue";
|
import DebugEvent from "./messages/DebugEvent.vue";
|
||||||
|
import roomDisplayOptionsMixin from "./roomDisplayOptionsMixin";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
mixins: [ roomDisplayOptionsMixin ],
|
||||||
components: {
|
components: {
|
||||||
ChatHeader,
|
ChatHeader,
|
||||||
MessageIncomingText,
|
MessageIncomingText,
|
||||||
|
|
@ -98,15 +100,6 @@ export default {
|
||||||
CreatePollDialog,
|
CreatePollDialog,
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
showOnlyUserStatusMessages() {
|
|
||||||
// We say that if you can redact events, you are allowed to create polls.
|
|
||||||
// NOTE!!! This assumes that there is a property named "room" on THIS.
|
|
||||||
const me = this.room && this.room.getMember(this.$matrix.currentUserId);
|
|
||||||
let isModerator =
|
|
||||||
me && this.room.currentState && this.room.currentState.hasSufficientPowerLevelFor("redact", me.powerLevel);
|
|
||||||
const show = this.$config.show_status_messages;
|
|
||||||
return show === "never" || (show === "moderators" && !isModerator)
|
|
||||||
},
|
|
||||||
showDayMarkerBeforeEvent(event) {
|
showDayMarkerBeforeEvent(event) {
|
||||||
const idx = this.events.indexOf(event);
|
const idx = this.events.indexOf(event);
|
||||||
if (idx <= 0) {
|
if (idx <= 0) {
|
||||||
|
|
@ -144,6 +137,9 @@ export default {
|
||||||
// We we already joined, so this must be a display name and/or avatar update!
|
// We we already joined, so this must be a display name and/or avatar update!
|
||||||
return ContactChanged;
|
return ContactChanged;
|
||||||
} else {
|
} else {
|
||||||
|
if (event.getSender() == this.$matrix.currentUserId && !this.showOwnJoins) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
return ContactJoin;
|
return ContactJoin;
|
||||||
}
|
}
|
||||||
} else if (event.getContent().membership == "leave") {
|
} else if (event.getContent().membership == "leave") {
|
||||||
|
|
@ -152,7 +148,7 @@ export default {
|
||||||
return ContactKicked;
|
return ContactKicked;
|
||||||
}
|
}
|
||||||
return ContactLeave;
|
return ContactLeave;
|
||||||
} else if (!this.showOnlyUserStatusMessages()) {
|
} else if (this.showAllStatusMessages) {
|
||||||
if (event.getContent().membership == "invite") {
|
if (event.getContent().membership == "invite") {
|
||||||
return ContactInvited;
|
return ContactInvited;
|
||||||
} else if (event.getContent().membership == "ban") {
|
} else if (event.getContent().membership == "ban") {
|
||||||
|
|
@ -233,61 +229,61 @@ export default {
|
||||||
}
|
}
|
||||||
|
|
||||||
case "m.room.create":
|
case "m.room.create":
|
||||||
if (!this.showOnlyUserStatusMessages()) {
|
if (this.showAllStatusMessages) {
|
||||||
return RoomCreated;
|
return RoomCreated;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "m.room.canonical_alias":
|
case "m.room.canonical_alias":
|
||||||
if (!this.showOnlyUserStatusMessages()) {
|
if (this.showAllStatusMessages) {
|
||||||
return RoomAliased;
|
return RoomAliased;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "m.room.name":
|
case "m.room.name":
|
||||||
if (!this.showOnlyUserStatusMessages()) {
|
if (this.showAllStatusMessages) {
|
||||||
return RoomNameChanged;
|
return RoomNameChanged;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "m.room.topic":
|
case "m.room.topic":
|
||||||
if (!this.showOnlyUserStatusMessages()) {
|
if (this.showAllStatusMessages) {
|
||||||
return RoomTopicChanged;
|
return RoomTopicChanged;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "m.room.avatar":
|
case "m.room.avatar":
|
||||||
if (!this.showOnlyUserStatusMessages()) {
|
if (this.showAllStatusMessages) {
|
||||||
return RoomAvatarChanged;
|
return RoomAvatarChanged;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "m.room.history_visibility":
|
case "m.room.history_visibility":
|
||||||
if (!this.showOnlyUserStatusMessages()) {
|
if (this.showAllStatusMessages) {
|
||||||
return RoomHistoryVisibility;
|
return RoomHistoryVisibility;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "m.room.join_rules":
|
case "m.room.join_rules":
|
||||||
if (!this.showOnlyUserStatusMessages()) {
|
if (this.showAllStatusMessages) {
|
||||||
return RoomJoinRules;
|
return RoomJoinRules;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "m.room.power_levels":
|
case "m.room.power_levels":
|
||||||
if (!this.showOnlyUserStatusMessages()) {
|
if (this.showAllStatusMessages) {
|
||||||
return RoomPowerLevelsChanged;
|
return RoomPowerLevelsChanged;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "m.room.guest_access":
|
case "m.room.guest_access":
|
||||||
if (!this.showOnlyUserStatusMessages()) {
|
if (this.showAllStatusMessages) {
|
||||||
return RoomGuestAccessChanged;
|
return RoomGuestAccessChanged;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "m.room.encryption":
|
case "m.room.encryption":
|
||||||
if (!this.showOnlyUserStatusMessages()) {
|
if (this.showAllStatusMessages) {
|
||||||
return RoomEncrypted;
|
return RoomEncrypted;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
18
src/components/roomDisplayOptionsMixin.js
Normal file
18
src/components/roomDisplayOptionsMixin.js
Normal file
|
|
@ -0,0 +1,18 @@
|
||||||
|
export default {
|
||||||
|
computed: {
|
||||||
|
showOwnJoins() {
|
||||||
|
return !this.$matrix.isDirectRoom(this.room);
|
||||||
|
},
|
||||||
|
|
||||||
|
showAllStatusMessages() {
|
||||||
|
// We say that if you can redact events, you are ad admin.
|
||||||
|
// NOTE!!! This assumes that there is a property named "room" on THIS.
|
||||||
|
const me = this.room && this.room.getMember(this.$matrix.currentUserId);
|
||||||
|
let isModerator =
|
||||||
|
me && this.room.currentState && this.room.currentState.hasSufficientPowerLevelFor("redact", me.powerLevel);
|
||||||
|
const show = this.$config.show_status_messages;
|
||||||
|
return show !== "never" && (show !== "moderators" || isModerator)
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue