Adjusted webclient to use new state paths. Updated membership msg template to actually show the person invited. Factored out common membership functions in matrix service.
2 files changed, 9 insertions, 6 deletions
diff --git a/webclient/room/room-controller.js b/webclient/room/room-controller.js
index 3311618825..f49deaa489 100644
--- a/webclient/room/room-controller.js
+++ b/webclient/room/room-controller.js
@@ -154,7 +154,10 @@ angular.module('RoomController', ['ngSanitize', 'mUtilities'])
var updateMemberList = function(chunk) {
if (chunk.room_id != $scope.room_id) return;
- var isNewMember = !(chunk.target_user_id in $scope.members);
+ // set target_user_id to keep things clear
+ var target_user_id = chunk.state_key;
+
+ var isNewMember = !(target_user_id in $scope.members);
if (isNewMember) {
// FIXME: why are we copying these fields around inside chunk?
if ("state" in chunk.content) {
@@ -172,7 +175,7 @@ angular.module('RoomController', ['ngSanitize', 'mUtilities'])
if ("avatar_url" in chunk.content) {
chunk.avatar_url = chunk.content.avatar_url;
}
- $scope.members[chunk.target_user_id] = chunk;
+ $scope.members[target_user_id] = chunk;
/*
// Stale code for explicitly hammering the homeserver for every displayname & avatar_url
@@ -202,13 +205,13 @@ angular.module('RoomController', ['ngSanitize', 'mUtilities'])
});
*/
- if (chunk.target_user_id in $rootScope.presence) {
- updatePresence($rootScope.presence[chunk.target_user_id]);
+ if (target_user_id in $rootScope.presence) {
+ updatePresence($rootScope.presence[target_user_id]);
}
}
else {
// selectively update membership else it will nuke the picture and displayname too :/
- var member = $scope.members[chunk.target_user_id];
+ var member = $scope.members[target_user_id];
member.content.membership = chunk.content.membership;
}
}
diff --git a/webclient/room/room.html b/webclient/room/room.html
index 06ca63d2ea..c167819f15 100644
--- a/webclient/room/room.html
+++ b/webclient/room/room.html
@@ -44,7 +44,7 @@
<span ng-hide='msg.type !== "m.room.member"'>
{{ members[msg.user_id].displayname || msg.user_id }}
{{ {"join": "joined", "leave": "left", "invite": "invited"}[msg.content.membership] }}
- {{ msg.content.target_id || '' }}
+ {{ msg.content.membership === "invite" ? (msg.state_key || '') : '' }}
</span>
<span ng-hide='msg.content.msgtype !== "m.emote"' ng-bind-html="'* ' + (members[msg.user_id].displayname || msg.user_id) + ' ' + msg.content.body | linky:'_blank'"/>
<span ng-hide='msg.content.msgtype !== "m.text"' ng-bind-html="((msg.content.msgtype === 'm.text') ? msg.content.body : '') | linky:'_blank'"/>
|