From 2c400363e8f4c7d726aee06119fb4c4f18edfddd Mon Sep 17 00:00:00 2001 From: Kegan Dougal Date: Wed, 12 Nov 2014 11:24:05 +0000 Subject: [PATCH] SYWEB-146: Fix room ID leaking on recents page when the name of the room is just an alias. --- syweb/webclient/components/matrix/matrix-service.js | 1 - syweb/webclient/components/matrix/model-service.js | 10 ++++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/syweb/webclient/components/matrix/matrix-service.js b/syweb/webclient/components/matrix/matrix-service.js index 70747155f..c1264887c 100644 --- a/syweb/webclient/components/matrix/matrix-service.js +++ b/syweb/webclient/components/matrix/matrix-service.js @@ -39,7 +39,6 @@ angular.module('matrixService', []) // Current version of permanent storage var configVersion = 0; var prefixPath = "/_matrix/client/api/v1"; - var MAPPING_PREFIX = "alias_for_"; var doRequest = function(method, path, params, data, $httpParams) { if (!config) { diff --git a/syweb/webclient/components/matrix/model-service.js b/syweb/webclient/components/matrix/model-service.js index c6f0defb6..578804c99 100644 --- a/syweb/webclient/components/matrix/model-service.js +++ b/syweb/webclient/components/matrix/model-service.js @@ -31,6 +31,10 @@ angular.module('modelService', []) // alias / id lookups var roomIdToAlias = {}; var aliasToRoomId = {}; + var setRoomIdToAliasMapping = function(roomId, alias) { + roomIdToAlias[roomId] = alias; + aliasToRoomId[alias] = roomId; + }; /***** Room Object *****/ var Room = function Room(room_id) { @@ -114,6 +118,9 @@ angular.module('modelService', []) rm.event = event; this.members[event.state_key] = rm; } + else if (event.type === "m.room.aliases") { + setRoomIdToAliasMapping(event.room_id, event.content.aliases[0]); + } }, storeStateEvents: function storeState(events) { @@ -210,8 +217,7 @@ angular.module('modelService', []) }, createRoomIdToAliasMapping: function(roomId, alias) { - roomIdToAlias[roomId] = alias; - aliasToRoomId[alias] = roomId; + setRoomIdToAliasMapping(roomId, alias); }, getRoomIdToAliasMapping: function(roomId) {