Browse Source

Correctly process userids in status events.

pull/28/head
Simon Eisenmann 11 years ago
parent
commit
5c3d38a23c
  1. 43
      static/js/services/buddylist.js

43
static/js/services/buddylist.js

@ -324,7 +324,7 @@ define(['underscore', 'modernizr', 'avltree', 'text!partials/buddy.html', 'text!
Buddylist.prototype.updateBuddyPicture = function(status) { Buddylist.prototype.updateBuddyPicture = function(status) {
url = status.buddyPicture url = status.buddyPicture;
if (!url) { if (!url) {
return; return;
} }
@ -335,15 +335,19 @@ define(['underscore', 'modernizr', 'avltree', 'text!partials/buddy.html', 'text!
}; };
Buddylist.prototype.onStatus = function(status) { Buddylist.prototype.onStatus = function(data) {
//console.log("onStatus", status); //console.log("onStatus", status);
var id = status.Id; var id = data.Id;
var scope = buddyData.get(id, this.$scope, _.bind(this.onBuddyScope, this)); var scope = buddyData.get(id, this.$scope, _.bind(this.onBuddyScope, this));
if (scope.status && scope.status.Rev >= status.Rev) { // Update session.
console.warn("Received old status update in status", status.Rev, scope.status.Rev); scope.session.Userid = data.Userid;
scope.session.Rev = data.Rev;
// Update status.
if (scope.status && scope.status.Rev >= data.Rev) {
console.warn("Received old status update in status", data.Rev, scope.status.Rev);
} else { } else {
scope.status = status.Status; scope.status = data.Status;
this.updateBuddyPicture(scope.status); this.updateBuddyPicture(scope.status);
var displayName = scope.displayName; var displayName = scope.displayName;
if (scope.status.displayName) { if (scope.status.displayName) {
@ -360,18 +364,25 @@ define(['underscore', 'modernizr', 'avltree', 'text!partials/buddy.html', 'text!
}; };
Buddylist.prototype.onJoined = function(session) { Buddylist.prototype.onJoined = function(data) {
//console.log("Joined", session); //console.log("Joined", data);
var id = session.Id; var id = data.Id;
var scope = buddyData.get(id, this.$scope, _.bind(this.onBuddyScope, this)); var scope = buddyData.get(id, this.$scope, _.bind(this.onBuddyScope, this));
scope.session = session; // Create session.
scope.session = {
Id: data.Id,
Userid: data.Userid,
Ua: data.Ua,
Rev: 0
};
// Add status.
buddyCount++; buddyCount++;
if (session.Status) { if (data.Status) {
if (scope.status && scope.status.Rev >= session.Status.Rev) { if (scope.status && scope.status.Rev >= data.Status.Rev) {
console.warn("Received old status update in join", session.Status.Rev, scope.status.Rev); console.warn("Received old status update in join", data.Status.Rev, scope.status.Rev);
} else { } else {
scope.status = session.Status; scope.status = data.Status;
scope.displayName = scope.status.displayName; scope.displayName = scope.status.displayName;
this.updateBuddyPicture(scope.status); this.updateBuddyPicture(scope.status);
} }
@ -385,10 +396,10 @@ define(['underscore', 'modernizr', 'avltree', 'text!partials/buddy.html', 'text!
}; };
Buddylist.prototype.onLeft = function(session) { Buddylist.prototype.onLeft = function(data) {
//console.log("Left", session); //console.log("Left", session);
var id = session.Id; var id = data.Id;
this.tree.remove(id); this.tree.remove(id);
var scope = buddyData.get(id); var scope = buddyData.get(id);
if (!scope) { if (!scope) {

Loading…
Cancel
Save