{{ $t("purge_room.info") }}
@@ -101,4 +102,4 @@ export default {
\ No newline at end of file
+
diff --git a/src/components/QuoteView.vue b/src/components/QuoteView.vue
index 370fead..a17011b 100644
--- a/src/components/QuoteView.vue
+++ b/src/components/QuoteView.vue
@@ -1,49 +1,130 @@
-
-
-
-
{{ quote }}
-
- {{ author }}
-
-
Close your browser tab
-
-
+
+
+
+
+
+
+
+ {{ $t("goodbye.room_deleted") }}
+
+
{{ quote }}
+
- {{ author }}
+
+
{{ $t("goodbye.view_other_rooms") }}
+
{{ $t("goodbye.close_tab") }}
+
+
+
+
+
+
+
+ {{ $t("profile_info_popup.you_are") }}
+
+
+
+
+
+ {{ displayName }}
+
+
+
+
+
+
+ {{ displayName }}
+
+
+
+
+
+ {{ userAvatarLetter }}
+
+
+
+
@@ -80,5 +173,4 @@ export default {
.slow-fade-enter, .slow-fade-leave-to /* .fade-leave-active below version 2.1.8 */ {
opacity: 0;
}
-
\ No newline at end of file
diff --git a/src/router/index.js b/src/router/index.js
index a69fbc1..29af606 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -74,6 +74,7 @@ const routes = [
path: '/goodbye',
name: 'Goodbye',
component: () => import('../components/QuoteView.vue'),
+ props: true
}
]
@@ -82,7 +83,7 @@ const router = new VueRouter({
});
router.beforeEach((to, from, next) => {
- const publicPages = ['/login','/createroom'];
+ const publicPages = ['/login', '/createroom'];
var authRequired = !publicPages.includes(to.path);
const loggedIn = router.app.$store.state.auth.user;
@@ -113,7 +114,7 @@ router.beforeEach((to, from, next) => {
}
});
-router.getRoomLink = function(roomId) {
+router.getRoomLink = function (roomId) {
return window.location.origin + window.location.pathname + "#/room/" + encodeURIComponent(util.sanitizeRoomId(roomId));
}
diff --git a/src/services/matrix.service.js b/src/services/matrix.service.js
index 9190fd3..1f1389b 100644
--- a/src/services/matrix.service.js
+++ b/src/services/matrix.service.js
@@ -303,6 +303,7 @@ export default {
client.on("Room", this.onRoom);
client.on("Session.logged_out", this.onSessionLoggedOut);
client.on("Room.myMembership", this.onRoomMyMembership);
+ client.on("RoomMember.membership", this.onRoomMemberMembership);
}
},
@@ -312,6 +313,7 @@ export default {
client.off("Room", this.onRoom);
client.off("Session.logged_out", this.onSessionLoggedOut);
client.off("Room.myMembership", this.onRoomMyMembership);
+ client.off("RoomMember.membership", this.onRoomMemberMembership);
}
},
@@ -351,6 +353,17 @@ export default {
}
},
+ onRoomMemberMembership(event, member, ignoredoldMembership) {
+ if (member.userId == this.currentUserId && member.isKicked()) {
+ if (this.currentRoomId == event.getRoomId()) {
+ // We were kicked! Look at "reason", maybe a purge?
+ const reason = event.getContent().reason || "";
+ const roomWasPurged = (reason == "Room Deleted");
+ this.$navigation.push({ name: "Goodbye", params: { roomWasPurged: roomWasPurged } }, -1);
+ }
+ }
+ },
+
onSessionLoggedOut() {
console.log("Logged out!");
if (this.matrixClient) {
@@ -502,7 +515,7 @@ export default {
);
const self = this;
- console.log("Purge: set invite only");
+ //console.log("Purge: set invite only");
statusCallback(this.$t('room.purge_set_room_state'));
this.matrixClient.sendStateEvent(
roomId,
@@ -511,7 +524,7 @@ export default {
""
)
.then(() => {
- console.log("Purge: forbid guest access");
+ //console.log("Purge: forbid guest access");
return this.matrixClient.sendStateEvent(
roomId,
"m.room.guest_access",
@@ -520,20 +533,20 @@ export default {
);
})
.then(() => {
- console.log("Purge: set history visibility to 'joined'");
+ //console.log("Purge: set history visibility to 'joined'");
return this.matrixClient.sendStateEvent(roomId, "m.room.history_visibility", {
history_visibility: "joined",
});
})
.then(() => {
- console.log("Purge: create timeline");
+ //console.log("Purge: create timeline");
return timelineWindow.load(null, 100)
})
.then(() => {
const getMoreIfAvailable = function _getMoreIfAvailable() {
if (timelineWindow.canPaginate(EventTimeline.BACKWARDS)
) {
- console.log("Purge: page back");
+ //console.log("Purge: page back");
return timelineWindow
.paginate(EventTimeline.BACKWARDS, 100, true, 5)
.then((ignoredsuccess) => {
@@ -546,7 +559,7 @@ export default {
return getMoreIfAvailable();
})
.then(() => {
- console.log("Purge: redact events");
+ //console.log("Purge: redact events");
statusCallback(this.$t('room.purge_redacting_events'));
// First ignore unknown device errors
this.matrixClient.setGlobalErrorOnUnknownDevices(false);
@@ -560,7 +573,7 @@ export default {
return Promise.all(redactionPromises);
})
.then(() => {
- console.log("Purge: kick members");
+ //console.log("Purge: kick members");
statusCallback(this.$t('room.purge_removing_members'));
var joined = room.getMembersWithMembership("join");
var invited = room.getMembersWithMembership("invite");
@@ -577,6 +590,9 @@ export default {
.then(() => {
statusCallback(null);
this.matrixClient.setGlobalErrorOnUnknownDevices(oldGlobalErrorSetting);
+ return this.leaveRoom(roomId);
+ })
+ .then(() => {
resolve(true); // Done!
})
.catch((err) => {