diff options
author | Emmanuel ROHEE <erohee@amdocs.com> | 2014-09-05 18:05:23 +0200 |
---|---|---|
committer | Emmanuel ROHEE <erohee@amdocs.com> | 2014-09-05 18:05:23 +0200 |
commit | 8a7f7f50044bb277e8d2e9c08dc3cee1d88ab1ab (patch) | |
tree | 16f91dcd862da7b7d9959a90f727ad4a55dbb87a /webclient/room | |
parent | autoscroll down(if the scroller was already at the bottom) when receiving mem... (diff) | |
download | synapse-8a7f7f50044bb277e8d2e9c08dc3cee1d88ab1ab.tar.xz |
BF: Update the members list on banned & kicked "events"
Diffstat (limited to '')
-rw-r--r-- | webclient/room/room-controller.js | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/webclient/room/room-controller.js b/webclient/room/room-controller.js index 2267283fb8..8203b6ed3f 100644 --- a/webclient/room/room-controller.js +++ b/webclient/room/room-controller.js @@ -175,16 +175,18 @@ angular.module('RoomController', ['ngSanitize', 'matrixFilter', 'mFileInput']) var updateMemberList = function(chunk) { if (chunk.room_id != $scope.room_id) return; - // Ignore banned and kicked (leave) people - if ("ban" === chunk.membership || "leave" === chunk.membership) { - return; - } // 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) { + + // Ignore banned and kicked (leave) people + if ("ban" === chunk.membership || "leave" === chunk.membership) { + return; + } + // FIXME: why are we copying these fields around inside chunk? if ("presence" in chunk.content) { chunk.presence = chunk.content.presence; @@ -208,6 +210,13 @@ angular.module('RoomController', ['ngSanitize', 'matrixFilter', 'mFileInput']) } else { // selectively update membership and presence else it will nuke the picture and displayname too :/ + + // Remove banned and kicked (leave) people + if ("ban" === chunk.membership || "leave" === chunk.membership) { + delete $scope.members[target_user_id]; + return; + } + var member = $scope.members[target_user_id]; member.membership = chunk.content.membership; if ("presence" in chunk.content) { |