diff options
author | Emmanuel ROHEE <erohee@amdocs.com> | 2014-09-01 16:21:13 +0200 |
---|---|---|
committer | Emmanuel ROHEE <erohee@amdocs.com> | 2014-09-01 16:22:59 +0200 |
commit | c9ee9b45c74d690f49f454b62170feb0f5483d38 (patch) | |
tree | ad61f0c3c9b2cac7f95fa5c4d64a87cae1f1b825 /webclient | |
parent | Rename 'state' presence key to the much more obvious 'presence'; maintain a l... (diff) | |
download | synapse-c9ee9b45c74d690f49f454b62170feb0f5483d38.tar.xz |
Fixed presence state update. Specifically, the current user was sometimes indicated as offline
Diffstat (limited to 'webclient')
-rw-r--r-- | webclient/room/room-controller.js | 28 |
1 files changed, 23 insertions, 5 deletions
diff --git a/webclient/room/room-controller.js b/webclient/room/room-controller.js index c6028f874e..048350110b 100644 --- a/webclient/room/room-controller.js +++ b/webclient/room/room-controller.js @@ -201,9 +201,15 @@ angular.module('RoomController', ['ngSanitize', 'mFileInput']) } } else { - // selectively update membership else it will nuke the picture and displayname too :/ + // selectively update membership and presence else it will nuke the picture and displayname too :/ var member = $scope.members[target_user_id]; - member.content.membership = chunk.content.membership; + member.membership = chunk.content.membership; + if ("state" in chunk.content) { + member.presenceState = chunk.content.state; + } + if ("mtime_age" in chunk.content) { + member.mtime_age = chunk.content.mtime_age; + } } }; @@ -377,10 +383,22 @@ angular.module('RoomController', ['ngSanitize', 'mFileInput']) // Make recents highlight the current room $scope.recentsSelectedRoomID = $scope.room_id; - + + // Get the up-to-date the current member list + matrixService.getMemberList($scope.room_id).then( + function(response) { + for (var i = 0; i < response.data.chunk.length; i++) { + var chunk = response.data.chunk[i]; + updateMemberList(chunk); + updateMemberListPresenceAge(); + } + }, + function(error) { + $scope.feedback = "Failed get member list: " + error.data.error; + } + ); + paginate(MESSAGES_PER_PAGINATION); - - updateMemberListPresenceAge(); }; $scope.inviteUser = function(user_id) { |