From b60283473aa4b50e66213d5b4a4fb716fa40dd98 Mon Sep 17 00:00:00 2001 From: Matthew Hodgson Date: Sat, 16 Aug 2014 13:22:18 +0100 Subject: [PATCH] don't hammer a new hit for every displayname and avatar_url when we already have them in the members list... --- webclient/room/room-controller.js | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/webclient/room/room-controller.js b/webclient/room/room-controller.js index 134247917..23584f17a 100644 --- a/webclient/room/room-controller.js +++ b/webclient/room/room-controller.js @@ -117,14 +117,26 @@ angular.module('RoomController', []) var updateMemberList = function(chunk) { var isNewMember = !(chunk.target_user_id in $scope.members); if (isNewMember) { + // FIXME: why are we copying these fields around inside chunk? if ("state" in chunk.content) { - chunk.presenceState = chunk.content.state; + chunk.presenceState = chunk.content.state; // why is this renamed? } if ("mtime_age" in chunk.content) { chunk.mtime_age = chunk.content.mtime_age; } + if ("displayname" in chunk.content) { + chunk.displayname = chunk.content.displayname; + } + if ("avatar_url" in chunk.content) { + chunk.avatar_url = chunk.content.avatar_url; + } $scope.members[chunk.target_user_id] = chunk; +/* + // *SURELY* we don't want to be hammering a new request for + // every displayname and profile picture URL. Hasn't it already + // been returned in the chunk? Hence commenting this out --Matthew + // get their display name and profile picture and set it to their // member entry in $scope.members. We HAVE to use $timeout with 0 delay // to make this function run AFTER the current digest cycle, else the @@ -148,6 +160,7 @@ angular.module('RoomController', []) } ); }); +*/ } else { // selectively update membership else it will nuke the picture and displayname too :/