Actually look for last_active_ago in the right place..

pull/14/head
Kegan Dougal 2014-11-14 15:30:49 +00:00
parent 459863bcff
commit 5ebd004a10
3 changed files with 140 additions and 70 deletions

View File

@ -53,11 +53,11 @@ angular.module('matrixWebClient')
b = b.user; b = b.user;
var aLastActiveTS = 0, bLastActiveTS = 0; var aLastActiveTS = 0, bLastActiveTS = 0;
if (a && undefined !== a.last_active_ago) { if (a && a.event && a.event.content && a.event.content.last_active_ago !== undefined) {
aLastActiveTS = a.last_updated - a.last_active_ago; aLastActiveTS = a.last_updated - a.event.content.last_active_ago;
} }
if (b && undefined !== b.last_active_ago) { if (b && b.event && b.event.content && b.event.content.last_active_ago !== undefined) {
bLastActiveTS = b.last_updated - b.last_active_ago; bLastActiveTS = b.last_updated - b.event.content.last_active_ago;
} }
if (aLastActiveTS || bLastActiveTS) { if (aLastActiveTS || bLastActiveTS) {
return bLastActiveTS - aLastActiveTS; return bLastActiveTS - aLastActiveTS;

View File

@ -160,8 +160,10 @@
<div class="sender" ng-hide="room.events[$index - 1].user_id === msg.user_id || msg.user_id === state.user_id"> {{ msg.__room_member.cnt.displayname || msg.user_id | mUserDisplayName:room_id:true }}</div> <div class="sender" ng-hide="room.events[$index - 1].user_id === msg.user_id || msg.user_id === state.user_id"> {{ msg.__room_member.cnt.displayname || msg.user_id | mUserDisplayName:room_id:true }}</div>
</td> </td>
<td class="avatar"> <td class="avatar">
<!-- msg.__room_member.avatar_url is just backwards compat, and can be removed in the future. --> <!-- room.now.members[msg.user_id].user.event.content.avatar_url is just backwards compat, and can be removed in the future. Synapse didn't used to
<img class="avatarImage" ng-src="{{ msg.__room_member.cnt.avatar_url || msg.__room_member.content.avatar_url || 'img/default-profile.png' }}" width="32" height="32" title="{{msg.user_id}}" send m.room.member updates when avatar urls changed, so the image which should be visible here just going off room state isn't visible. We fix
this by reading off the m.presence url -->
<img class="avatarImage" ng-src="{{ msg.__room_member.cnt.avatar_url || msg.__room_member.content.avatar_url || room.now.members[msg.user_id].user.event.content.avatar_url || 'img/default-profile.png' }}" width="32" height="32" title="{{msg.user_id}}"
ng-hide="room.events[$index - 1].user_id === msg.user_id || msg.user_id === state.user_id"/> ng-hide="room.events[$index - 1].user_id === msg.user_id || msg.user_id === state.user_id"/>
</td> </td>
<td class="msg" ng-class="(!msg.content.membership && ('m.room.topic' !== msg.type && 'm.room.name' !== msg.type))? (msg.content.msgtype === 'm.emote' ? 'emote text' : 'text') : 'membership text'"> <td class="msg" ng-class="(!msg.content.membership && ('m.room.topic' !== msg.type && 'm.room.name' !== msg.type))? (msg.content.msgtype === 'm.emote' ? 'emote text' : 'text') : 'membership text'">

View File

@ -300,8 +300,11 @@ describe('orderMembersList filter', function() {
var output = orderMembersList({ var output = orderMembersList({
"@a:example.com": { "@a:example.com": {
user: { user: {
event: {}, event: {
last_active_ago: 50, content: {
last_active_ago: 50
}
},
last_updated: 1415266943964 last_updated: 1415266943964
} }
} }
@ -309,8 +312,11 @@ describe('orderMembersList filter', function() {
expect(output).toEqual([{ expect(output).toEqual([{
id: "@a:example.com", id: "@a:example.com",
user: { user: {
event: {}, event: {
last_active_ago: 50, content: {
last_active_ago: 50
}
},
last_updated: 1415266943964 last_updated: 1415266943964
} }
}]); }]);
@ -320,22 +326,31 @@ describe('orderMembersList filter', function() {
var output = orderMembersList({ var output = orderMembersList({
"@a:example.com": { "@a:example.com": {
user: { user: {
event: {}, event: {
last_active_ago: 1000, content: {
last_active_ago: 1000
}
},
last_updated: 1415266943964 last_updated: 1415266943964
} }
}, },
"@b:example.com": { "@b:example.com": {
user: { user: {
event: {}, event: {
last_active_ago: 50, content: {
last_active_ago: 50
}
},
last_updated: 1415266943964 last_updated: 1415266943964
} }
}, },
"@c:example.com": { "@c:example.com": {
user: { user: {
event: {}, event: {
last_active_ago: 99999, content: {
last_active_ago: 99999
}
},
last_updated: 1415266943964 last_updated: 1415266943964
} }
} }
@ -344,24 +359,33 @@ describe('orderMembersList filter', function() {
{ {
id: "@b:example.com", id: "@b:example.com",
user: { user: {
event: {}, event: {
last_active_ago: 50, content: {
last_active_ago: 50
}
},
last_updated: 1415266943964 last_updated: 1415266943964
} }
}, },
{ {
id: "@a:example.com", id: "@a:example.com",
user: { user: {
event: {}, event: {
last_active_ago: 1000, content: {
last_active_ago: 1000
}
},
last_updated: 1415266943964 last_updated: 1415266943964
} }
}, },
{ {
id: "@c:example.com", id: "@c:example.com",
user: { user: {
event: {}, event: {
last_active_ago: 99999, content: {
last_active_ago: 99999
}
},
last_updated: 1415266943964 last_updated: 1415266943964
} }
}, },
@ -372,22 +396,31 @@ describe('orderMembersList filter', function() {
var output = orderMembersList({ var output = orderMembersList({
"@a:example.com": { "@a:example.com": {
user: { user: {
event: {}, event: {
last_active_ago: 1000, content: {
last_active_ago: 1000
}
},
last_updated: 1415266943964 last_updated: 1415266943964
} }
}, },
"@b:example.com": { "@b:example.com": {
user: { user: {
event: {}, event: {
last_active_ago: 1000, content: {
last_active_ago: 1000
}
},
last_updated: 1415266900000 last_updated: 1415266900000
} }
}, },
"@c:example.com": { "@c:example.com": {
user: { user: {
event: {}, event: {
last_active_ago: 1000, content: {
last_active_ago: 1000
}
},
last_updated: 1415266943000 last_updated: 1415266943000
} }
} }
@ -396,24 +429,33 @@ describe('orderMembersList filter', function() {
{ {
id: "@a:example.com", id: "@a:example.com",
user: { user: {
event: {}, event: {
last_active_ago: 1000, content: {
last_active_ago: 1000
}
},
last_updated: 1415266943964 last_updated: 1415266943964
} }
}, },
{ {
id: "@c:example.com", id: "@c:example.com",
user: { user: {
event: {}, event: {
last_active_ago: 1000, content: {
last_active_ago: 1000
}
},
last_updated: 1415266943000 last_updated: 1415266943000
} }
}, },
{ {
id: "@b:example.com", id: "@b:example.com",
user: { user: {
event: {}, event: {
last_active_ago: 1000, content: {
last_active_ago: 1000
}
},
last_updated: 1415266900000 last_updated: 1415266900000
} }
}, },
@ -425,22 +467,31 @@ describe('orderMembersList filter', function() {
var output = orderMembersList({ var output = orderMembersList({
"@a:example.com": { "@a:example.com": {
user: { user: {
event: {}, event: {
last_active_ago: 1000, content: {
last_active_ago: 1000
}
},
last_updated: 1415266943000 last_updated: 1415266943000
} }
}, },
"@b:example.com": { "@b:example.com": {
user: { user: {
event: {}, event: {
last_active_ago: 100000, content: {
last_active_ago: 100000
}
},
last_updated: 1415266943900 last_updated: 1415266943900
} }
}, },
"@c:example.com": { "@c:example.com": {
user: { user: {
event: {}, event: {
last_active_ago: 1000, content: {
last_active_ago: 1000
}
},
last_updated: 1415266943964 last_updated: 1415266943964
} }
} }
@ -449,24 +500,33 @@ describe('orderMembersList filter', function() {
{ {
id: "@c:example.com", id: "@c:example.com",
user: { user: {
event: {}, event: {
last_active_ago: 1000, content: {
last_active_ago: 1000
}
},
last_updated: 1415266943964 last_updated: 1415266943964
} }
}, },
{ {
id: "@a:example.com", id: "@a:example.com",
user: { user: {
event: {}, event: {
last_active_ago: 1000, content: {
last_active_ago: 1000
}
},
last_updated: 1415266943000 last_updated: 1415266943000
} }
}, },
{ {
id: "@b:example.com", id: "@b:example.com",
user: { user: {
event: {}, event: {
last_active_ago: 100000, content: {
last_active_ago: 100000
}
},
last_updated: 1415266943900 last_updated: 1415266943900
} }
}, },
@ -480,22 +540,26 @@ describe('orderMembersList filter', function() {
var output = orderMembersList({ var output = orderMembersList({
"@a:example.com": { "@a:example.com": {
user: { user: {
event: {}, event: {
last_active_ago: 1000, content: {
last_active_ago: 1000
}
},
last_updated: 1415266943964 last_updated: 1415266943964
} }
}, },
"@b:example.com": { "@b:example.com": {
user: { user: {
event: {}, event: {
last_active_ago: 100000, content: {
last_active_ago: 100000
}
},
last_updated: 1415266943964 last_updated: 1415266943964
} }
}, },
"@c:example.com": { "@c:example.com": {
user: { user: {
event: {},
last_active_ago: undefined,
last_updated: 1415266943964 last_updated: 1415266943964
} }
} }
@ -504,24 +568,28 @@ describe('orderMembersList filter', function() {
{ {
id: "@a:example.com", id: "@a:example.com",
user: { user: {
event: {}, event: {
last_active_ago: 1000, content: {
last_active_ago: 1000
}
},
last_updated: 1415266943964 last_updated: 1415266943964
} }
}, },
{ {
id: "@b:example.com", id: "@b:example.com",
user: { user: {
event: {}, event: {
last_active_ago: 100000, content: {
last_active_ago: 100000
}
},
last_updated: 1415266943964 last_updated: 1415266943964
} }
}, },
{ {
id: "@c:example.com", id: "@c:example.com",
user: { user: {
event: {},
last_active_ago: undefined,
last_updated: 1415266943964 last_updated: 1415266943964
} }
}, },
@ -536,10 +604,10 @@ describe('orderMembersList filter', function() {
user: { user: {
event: { event: {
content: { content: {
presence: "unavailable" presence: "unavailable",
last_active_ago: undefined
} }
}, },
last_active_ago: undefined,
last_updated: 1415266943964 last_updated: 1415266943964
} }
}, },
@ -547,10 +615,10 @@ describe('orderMembersList filter', function() {
user: { user: {
event: { event: {
content: { content: {
presence: "online" presence: "online",
last_active_ago: undefined
} }
}, },
last_active_ago: undefined,
last_updated: 1415266943964, last_updated: 1415266943964,
} }
}, },
@ -558,10 +626,10 @@ describe('orderMembersList filter', function() {
user: { user: {
event: { event: {
content: { content: {
presence: "offline" presence: "offline",
last_active_ago: undefined
} }
}, },
last_active_ago: undefined,
last_updated: 1415266943964 last_updated: 1415266943964
} }
} }
@ -572,10 +640,10 @@ describe('orderMembersList filter', function() {
user: { user: {
event: { event: {
content: { content: {
presence: "online" presence: "online",
last_active_ago: undefined
} }
}, },
last_active_ago: undefined,
last_updated: 1415266943964 last_updated: 1415266943964
} }
}, },
@ -584,10 +652,10 @@ describe('orderMembersList filter', function() {
user: { user: {
event: { event: {
content: { content: {
presence: "unavailable" presence: "unavailable",
last_active_ago: undefined
} }
}, },
last_active_ago: undefined,
last_updated: 1415266943964 last_updated: 1415266943964
} }
}, },
@ -596,10 +664,10 @@ describe('orderMembersList filter', function() {
user: { user: {
event: { event: {
content: { content: {
presence: "offline" presence: "offline",
last_active_ago: undefined
} }
}, },
last_active_ago: undefined,
last_updated: 1415266943964 last_updated: 1415266943964
} }
}, },