summary refs log tree commit diff
path: root/webclient
diff options
context:
space:
mode:
authorEmmanuel ROHEE <erohee@amdocs.com>2014-09-17 15:38:20 +0200
committerEmmanuel ROHEE <erohee@amdocs.com>2014-09-17 15:38:20 +0200
commit9aed6a06cf23ca3702dc2e7337f3aca6aa75a83f (patch)
treeefea2fcfccab660349eef5066fd60c2599cc1438 /webclient
parentSYWEB-7: Use sessionStorage to make per-room history survives when the user n... (diff)
downloadsynapse-9aed6a06cf23ca3702dc2e7337f3aca6aa75a83f.tar.xz
SYWEB-15: Always show the room alias as well as its name in the UI
Diffstat (limited to 'webclient')
-rw-r--r--webclient/components/matrix/matrix-filter.js110
1 files changed, 56 insertions, 54 deletions
diff --git a/webclient/components/matrix/matrix-filter.js b/webclient/components/matrix/matrix-filter.js
index 015a88bcad..8b168cdedb 100644
--- a/webclient/components/matrix/matrix-filter.js
+++ b/webclient/components/matrix/matrix-filter.js
@@ -26,72 +26,74 @@ angular.module('matrixFilter', [])
         // If there is an alias, use it
         // TODO: only one alias is managed for now
         var alias = matrixService.getRoomIdToAliasMapping(room_id);
-        if (alias) {
-            roomName = alias;
-        }
-
-        if (undefined === roomName) {
 
-            var room = $rootScope.events.rooms[room_id];
-            if (room) {
-                // Get name from room state date
-                var room_name_event = room["m.room.name"];
-                if (room_name_event) {
-                    roomName = room_name_event.content.name;
-                }
-                else if (room.members) {
-                    // Else, build the name from its users
-                    // FIXME: Is it still required?
-                    // Limit the room renaming to 1:1 room
-                    if (2 === Object.keys(room.members).length) {
-                        for (var i in room.members) {
-                            var member = room.members[i];
-                            if (member.state_key !== matrixService.config().user_id) {
+        var room = $rootScope.events.rooms[room_id];
+        if (room) {
+            // Get name from room state date
+            var room_name_event = room["m.room.name"];
+            if (room_name_event) {
+                roomName = room_name_event.content.name;
+            }
+            else if (alias) {
+                roomName = alias;
+            }
+            else if (room.members) {
+                // Else, build the name from its users
+                // FIXME: Is it still required?
+                // Limit the room renaming to 1:1 room
+                if (2 === Object.keys(room.members).length) {
+                    for (var i in room.members) {
+                        var member = room.members[i];
+                        if (member.state_key !== matrixService.config().user_id) {
 
-                                if (member.state_key in $rootScope.presence) {
-                                    // If the user is available in presence, use the displayname there
-                                    // as it is the most uptodate
-                                    roomName = $rootScope.presence[member.state_key].content.displayname;
-                                }
-                                else if (member.content.displayname) {
-                                    roomName = member.content.displayname;
-                                }
-                                else {
-                                    roomName = member.state_key;
-                                }
+                            if (member.state_key in $rootScope.presence) {
+                                // If the user is available in presence, use the displayname there
+                                // as it is the most uptodate
+                                roomName = $rootScope.presence[member.state_key].content.displayname;
                             }
-                        }
-                    }
-                    else if (1 === Object.keys(room.members).length) {
-                        // The other member may be in the invite list, get all invited users
-                        var invitedUserIDs = [];
-                        for (var i in room.messages) {
-                            var message = room.messages[i];
-                            if ("m.room.member" === message.type && "invite" === message.membership) {
-                                // Make sure there is no duplicate user
-                                if (-1 === invitedUserIDs.indexOf(message.state_key)) {
-                                    invitedUserIDs.push(message.state_key);
-                                }
-                            } 
-                        }
-                        
-                        // For now, only 1:1 room needs to be renamed. It means only 1 invited user
-                        if (1 === invitedUserIDs.length) {
-                            var userID = invitedUserIDs[0];
-
-                            // Try to resolve his displayname in presence global data
-                            if (userID in $rootScope.presence) {
-                                roomName = $rootScope.presence[userID].content.displayname;
+                            else if (member.content.displayname) {
+                                roomName = member.content.displayname;
                             }
                             else {
-                                roomName = userID;
+                                roomName = member.state_key;
                             }
                         }
                     }
                 }
+                else if (1 === Object.keys(room.members).length) {
+                    // The other member may be in the invite list, get all invited users
+                    var invitedUserIDs = [];
+                    for (var i in room.messages) {
+                        var message = room.messages[i];
+                        if ("m.room.member" === message.type && "invite" === message.membership) {
+                            // Make sure there is no duplicate user
+                            if (-1 === invitedUserIDs.indexOf(message.state_key)) {
+                                invitedUserIDs.push(message.state_key);
+                            }
+                        } 
+                    }
+
+                    // For now, only 1:1 room needs to be renamed. It means only 1 invited user
+                    if (1 === invitedUserIDs.length) {
+                        var userID = invitedUserIDs[0];
+
+                        // Try to resolve his displayname in presence global data
+                        if (userID in $rootScope.presence) {
+                            roomName = $rootScope.presence[userID].content.displayname;
+                        }
+                        else {
+                            roomName = userID;
+                        }
+                    }
+                }
             }
         }
 
+        // Always show the alias in the room displayed name
+        if (roomName && alias && alias !== roomName) {
+            roomName += " (" + alias + ")";
+        }
+
         if (undefined === roomName) {
             // By default, use the room ID
             roomName = room_id;