diff --git a/syweb/webclient/components/matrix/matrix-filter.js b/syweb/webclient/components/matrix/matrix-filter.js index 4d264e93f..e84c197c7 100644 --- a/syweb/webclient/components/matrix/matrix-filter.js +++ b/syweb/webclient/components/matrix/matrix-filter.js @@ -38,7 +38,7 @@ function($rootScope, matrixService, eventHandlerService, modelService) { if (room.state("m.room.join_rules") && room.state("m.room.join_rules").content) { isPublicRoom = ("public" === room.state("m.room.join_rules").content.join_rule); } - + if (room_name_event) { roomName = room_name_event.content.name; } @@ -56,6 +56,9 @@ function($rootScope, matrixService, eventHandlerService, modelService) { var member = room.members[i]; if (member.state_key !== user_id) { roomName = eventHandlerService.getUserDisplayName(room_id, member.state_key); + if (!roomName) { + roomName = member.state_key; + } break; } } @@ -70,13 +73,22 @@ function($rootScope, matrixService, eventHandlerService, modelService) { if (room.members[otherUserId].content.membership === "invite") { // someone invited us, use the right ID. roomName = eventHandlerService.getUserDisplayName(room_id, room.members[otherUserId].user_id); + if (!roomName) { + roomName = room.members[otherUserId].user_id; + } } else { roomName = eventHandlerService.getUserDisplayName(room_id, otherUserId); + if (!roomName) { + roomName = user_id; + } } } else { // it isn't us, so use their name if we know it. roomName = eventHandlerService.getUserDisplayName(room_id, otherUserId); + if (!roomName) { + roomName = otherUserId; + } } } else if (Object.keys(room.members).length === 0) { diff --git a/syweb/webclient/test/unit/filters.spec.js b/syweb/webclient/test/unit/filters.spec.js index f03742520..2e8d0c403 100644 --- a/syweb/webclient/test/unit/filters.spec.js +++ b/syweb/webclient/test/unit/filters.spec.js @@ -121,9 +121,8 @@ describe('mRoomName filter', function() { /**** ROOM ALIAS ****/ - // FIXME - xit("should show the room alias if one exists for private (invite join_rules) rooms if a room name doesn't exist.", function() { - var testAlias = "#thealias:matrix.org"; + it("should show the room alias if one exists for private (invite join_rules) rooms if a room name doesn't exist.", function() { + testAlias = "#thealias:matrix.org"; testUserId = "@me:matrix.org"; testRoomState.setJoinRule("invite"); testRoomState.setMember(testUserId, "join"); @@ -131,9 +130,8 @@ describe('mRoomName filter', function() { expect(output).toEqual(testAlias); }); - // FIXME - xit("should show the room alias if one exists for public (public join_rules) rooms if a room name doesn't exist.", function() { - var testAlias = "#thealias:matrix.org"; + it("should show the room alias if one exists for public (public join_rules) rooms if a room name doesn't exist.", function() { + testAlias = "#thealias:matrix.org"; testUserId = "@me:matrix.org"; testRoomState.setJoinRule("public"); testRoomState.setMember(testUserId, "join"); @@ -172,8 +170,7 @@ describe('mRoomName filter', function() { expect(output).toEqual(testDisplayName); }); - // FIXME - xit("should show your user ID for private (invite join_rules) rooms if a room name and alias don't exist and it is a self-chat and they don't have a display name set.", function() { + it("should show your user ID for private (invite join_rules) rooms if a room name and alias don't exist and it is a self-chat and they don't have a display name set.", function() { testUserId = "@me:matrix.org"; testRoomState.setJoinRule("private"); testRoomState.setMember(testUserId, "join"); @@ -194,8 +191,7 @@ describe('mRoomName filter', function() { expect(output).toEqual(testOtherDisplayName); }); - // FIXME - xit("should show the other user's ID for private (invite join_rules) rooms if a room name and alias don't exist and it is a 1:1-chat and they don't have a display name set.", function() { + it("should show the other user's ID for private (invite join_rules) rooms if a room name and alias don't exist and it is a 1:1-chat and they don't have a display name set.", function() { testUserId = "@me:matrix.org"; otherUserId = "@alice:matrix.org"; testRoomState.setJoinRule("private"); @@ -220,8 +216,7 @@ describe('mRoomName filter', function() { expect(output).toEqual(testOtherDisplayName); }); - // FIXME - xit("should show the other user's ID for private (invite join_rules) rooms if you are invited to it and the inviter doesn't have a display name.", function() { + it("should show the other user's ID for private (invite join_rules) rooms if you are invited to it and the inviter doesn't have a display name.", function() { testUserId = "@me:matrix.org"; testDisplayName = "Me"; otherUserId = "@alice:matrix.org";