Send room display name as part of invite link (if needed)
This commit is contained in:
parent
f551f96f50
commit
b097fd51d8
5 changed files with 25 additions and 5 deletions
|
|
@ -295,7 +295,7 @@ export default {
|
||||||
}
|
}
|
||||||
if (room) {
|
if (room) {
|
||||||
this.publicRoomLink = this.$router.getRoomLink(
|
this.publicRoomLink = this.$router.getRoomLink(
|
||||||
room.getCanonicalAlias() || roomId
|
room.getCanonicalAlias(), roomId, room.name
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@
|
||||||
{{ roomId && roomId.startsWith("@") ? $t("join.title_user") : $t("join.title") }}
|
{{ roomId && roomId.startsWith("@") ? $t("join.title_user") : $t("join.title") }}
|
||||||
</div>
|
</div>
|
||||||
<div class="join-title">
|
<div class="join-title">
|
||||||
{{ roomName }}
|
{{ roomDisplayName || roomName }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
@ -215,6 +215,14 @@ export default {
|
||||||
let activeLanguages = [...this.getLanguages()];
|
let activeLanguages = [...this.getLanguages()];
|
||||||
return activeLanguages.filter((lang) => lang.value === this.$i18n.locale);
|
return activeLanguages.filter((lang) => lang.value === this.$i18n.locale);
|
||||||
},
|
},
|
||||||
|
roomDisplayName() {
|
||||||
|
// If there is a display name in to invite link, use that!
|
||||||
|
try {
|
||||||
|
return new URL(location.href).searchParams.get('roomName');
|
||||||
|
} catch(ignoredError) {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
roomId: {
|
roomId: {
|
||||||
|
|
|
||||||
|
|
@ -57,7 +57,7 @@ export default {
|
||||||
publicRoomLink() {
|
publicRoomLink() {
|
||||||
if (this.room && this.roomJoinRule == "public") {
|
if (this.room && this.roomJoinRule == "public") {
|
||||||
return this.$router.getRoomLink(
|
return this.$router.getRoomLink(
|
||||||
this.room.getCanonicalAlias() || this.room.roomId
|
this.room.getCanonicalAlias(), this.room.roomId, this.room.name
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
|
|
|
||||||
|
|
@ -778,6 +778,13 @@ class Util {
|
||||||
return _browserCanRecordAudio;
|
return _browserCanRecordAudio;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getRoomNameFromAlias(alias) {
|
||||||
|
if (alias && alias.startsWith('#') && alias.indexOf(':') > 0) {
|
||||||
|
return alias.slice(1).split(':')[0];
|
||||||
|
}
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
|
||||||
getUniqueAliasForRoomName(matrixClient, roomName, homeServer, iterationCount) {
|
getUniqueAliasForRoomName(matrixClient, roomName, homeServer, iterationCount) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
var preferredAlias = roomName.replace(/\s/g, "").toLowerCase();
|
var preferredAlias = roomName.replace(/\s/g, "").toLowerCase();
|
||||||
|
|
|
||||||
|
|
@ -140,8 +140,13 @@ router.beforeEach((to, from, next) => {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
router.getRoomLink = function (roomId) {
|
router.getRoomLink = function (alias, roomId, roomName) {
|
||||||
return window.location.origin + window.location.pathname + "#/room/" + encodeURIComponent(util.sanitizeRoomId(roomId));
|
if ((!alias || roomName.replace(/\s/g, "").toLowerCase() !== util.getRoomNameFromAlias(alias)) && roomName) {
|
||||||
|
// There is no longer a correlation between alias and room name, probably because room name has
|
||||||
|
// changed. Include the "?roomName" part
|
||||||
|
return window.location.origin + window.location.pathname + "?roomName=" + encodeURIComponent(roomName) + "#/room/" + encodeURIComponent(util.sanitizeRoomId(alias || roomId));
|
||||||
|
}
|
||||||
|
return window.location.origin + window.location.pathname + "#/room/" + encodeURIComponent(util.sanitizeRoomId(alias || roomId));
|
||||||
}
|
}
|
||||||
|
|
||||||
export default router
|
export default router
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue