summary refs log tree commit diff
path: root/syweb/webclient/components
diff options
context:
space:
mode:
authorKegan Dougal <kegan@matrix.org>2014-11-06 14:52:22 +0000
committerKegan Dougal <kegan@matrix.org>2014-11-06 14:52:22 +0000
commite3c3f5a6d04bfbc0256010e9fb4dad7616ebbcc5 (patch)
tree25716cfbd85da66da6af8732d858780c82f56401 /syweb/webclient/components
parentUse mRoomName on join notifications as well. (diff)
downloadsynapse-e3c3f5a6d04bfbc0256010e9fb4dad7616ebbcc5.tar.xz
Swap from using raw m.room.member events for room members to using actual RoomMember objects, so User objects can be tacked on. Update tests.
Diffstat (limited to 'syweb/webclient/components')
-rw-r--r--syweb/webclient/components/matrix/event-handler-service.js9
-rw-r--r--syweb/webclient/components/matrix/matrix-call.js2
-rw-r--r--syweb/webclient/components/matrix/matrix-filter.js8
-rw-r--r--syweb/webclient/components/matrix/model-service.js4
4 files changed, 14 insertions, 9 deletions
diff --git a/syweb/webclient/components/matrix/event-handler-service.js b/syweb/webclient/components/matrix/event-handler-service.js
index 38a6efced7..a9c6eb34c7 100644
--- a/syweb/webclient/components/matrix/event-handler-service.js
+++ b/syweb/webclient/components/matrix/event-handler-service.js
@@ -141,7 +141,7 @@ function(matrixService, $rootScope, $q, $timeout, $filter, mPresence, notificati
                 notificationService.showNotification(
                     displayname + " (" + roomTitle + ")",
                     message,
-                    member ? member.avatar_url : undefined,
+                    member ? member.event.content.avatar_url : undefined,
                     function() {
                         console.log("notification.onclick() room=" + event.room_id);
                         $rootScope.goToPage('room/' + event.room_id); 
@@ -306,6 +306,9 @@ function(matrixService, $rootScope, $q, $timeout, $filter, mPresence, notificati
 
         // Get the user display name from the member list of the room
         var member = modelService.getMember(room_id, user_id);
+        if (member) {
+            member = member.event;
+        }
         if (member && member.content.displayname) { // Do not consider null displayname
             displayName = member.content.displayname;
 
@@ -315,7 +318,7 @@ function(matrixService, $rootScope, $q, $timeout, $filter, mPresence, notificati
 
                 for (var member_id in room.current_room_state.members) {
                     if (room.current_room_state.members.hasOwnProperty(member_id) && member_id !== user_id) {
-                        var member2 = room.current_room_state.members[member_id];
+                        var member2 = room.current_room_state.members[member_id].event;
                         if (member2.content.displayname && member2.content.displayname === displayName) {
                             displayName = displayName + " (" + user_id + ")";
                             break;
@@ -551,7 +554,7 @@ function(matrixService, $rootScope, $q, $timeout, $filter, mPresence, notificati
             for (var i in room.current_room_state.members) {
                 if (!room.current_room_state.members.hasOwnProperty(i)) continue;
 
-                var member = room.current_room_state.members[i];
+                var member = room.current_room_state.members[i].event;
 
                 if ("join" === member.content.membership) {
                     memberCount = memberCount + 1;
diff --git a/syweb/webclient/components/matrix/matrix-call.js b/syweb/webclient/components/matrix/matrix-call.js
index 5a2807c755..465b2b7807 100644
--- a/syweb/webclient/components/matrix/matrix-call.js
+++ b/syweb/webclient/components/matrix/matrix-call.js
@@ -214,7 +214,7 @@ angular.module('MatrixCall', [])
         var self = this;
 
         var roomMembers = modelService.getRoom(this.room_id).current_room_state.members;
-        if (roomMembers[matrixService.config().user_id].membership != 'join') {
+        if (roomMembers[matrixService.config().user_id].event.content.membership != 'join') {
             console.log("We need to join the room before we can accept this call");
             matrixService.join(this.room_id).then(function() {
                 self.answer();
diff --git a/syweb/webclient/components/matrix/matrix-filter.js b/syweb/webclient/components/matrix/matrix-filter.js
index e84c197c76..aeebedc784 100644
--- a/syweb/webclient/components/matrix/matrix-filter.js
+++ b/syweb/webclient/components/matrix/matrix-filter.js
@@ -53,7 +53,7 @@ function($rootScope, matrixService, eventHandlerService, modelService) {
                 for (var i in room.members) {
                     if (!room.members.hasOwnProperty(i)) continue;
 
-                    var member = room.members[i];
+                    var member = room.members[i].event;
                     if (member.state_key !== user_id) {
                         roomName = eventHandlerService.getUserDisplayName(room_id, member.state_key);
                         if (!roomName) {
@@ -70,11 +70,11 @@ function($rootScope, matrixService, eventHandlerService, modelService) {
                 if (otherUserId === user_id) {
                     // it's us, we may have been invited to this room or it could
                     // be a self chat.
-                    if (room.members[otherUserId].content.membership === "invite") {
+                    if (room.members[otherUserId].event.content.membership === "invite") {
                         // someone invited us, use the right ID.
-                        roomName = eventHandlerService.getUserDisplayName(room_id, room.members[otherUserId].user_id);
+                        roomName = eventHandlerService.getUserDisplayName(room_id, room.members[otherUserId].event.user_id);
                         if (!roomName) {
-                            roomName = room.members[otherUserId].user_id;
+                            roomName = room.members[otherUserId].event.user_id;
                         }
                     }
                     else {
diff --git a/syweb/webclient/components/matrix/model-service.js b/syweb/webclient/components/matrix/model-service.js
index 8b2ee877b1..8e0ce8d1a9 100644
--- a/syweb/webclient/components/matrix/model-service.js
+++ b/syweb/webclient/components/matrix/model-service.js
@@ -106,7 +106,9 @@ angular.module('modelService', [])
         storeStateEvent: function storeState(event) {
             this.state_events[event.type + event.state_key] = event;
             if (event.type === "m.room.member") {
-                this.members[event.state_key] = event;
+                var rm = new RoomMember();
+                rm.event = event;
+                this.members[event.state_key] = rm;
             }
         },