summary refs log tree commit diff
path: root/syweb/webclient/components
diff options
context:
space:
mode:
Diffstat (limited to 'syweb/webclient/components')
-rw-r--r--syweb/webclient/components/matrix/model-service.js14
1 files changed, 13 insertions, 1 deletions
diff --git a/syweb/webclient/components/matrix/model-service.js b/syweb/webclient/components/matrix/model-service.js
index 80b40d8782..e1fed65152 100644
--- a/syweb/webclient/components/matrix/model-service.js
+++ b/syweb/webclient/components/matrix/model-service.js
@@ -181,6 +181,7 @@ angular.module('modelService', [])
     /***** User Object *****/
     var User = function User() {
         this.event = {}; // the m.presence event representing the User.
+        this.last_updated = 0; // used with last_active_ago to work out last seen times
     };
     
     // rooms are stored here when they come in.
@@ -241,7 +242,18 @@ angular.module('modelService', [])
         setUser: function(event) {
             var usr = new User();
             usr.event = event;
-            users[event.content.user_id] = usr;
+            
+            // migrate old data but clobber matching keys
+            if (users[event.content.user_id] && users[event.content.user_id].event) {
+                angular.extend(users[event.content.user_id].event, event);
+                usr = users[event.content.user_id];
+            }
+            else {
+                users[event.content.user_id] = usr;
+            }
+            
+            usr.last_updated = new Date().getTime();
+            
             // update room members
             var roomMembers = userIdToRoomMember[event.content.user_id];
             if (roomMembers) {