v1.18.x
barisusakli 11 years ago
parent 6f2ea3eafc
commit 7339cb5d61

@ -243,8 +243,21 @@ define(['forum/pagination', 'forum/topic/threadTools', 'forum/topic/postTools',
socket.on('user.isOnline', function(err, data) { socket.on('user.isOnline', function(err, data) {
app.populateOnlineUsers(); app.populateOnlineUsers();
updateActiveUsers(data);
}); });
function updateActiveUsers(data) {
var activeEl = $('.thread_active_users');
var user = activeEl.find('a[data-uid="'+ data.uid + '"]');
if (user.length && !data.online) {
user.parent().remove();
} else if(!user.length && data.online) {
user = createUserIcon(data.uid, data.picture, data.userslug, data.username);
activeEl.append(user);
}
}
socket.on('event:voted', function(data) { socket.on('event:voted', function(data) {
updatePostVotesAndUserReputation(data); updatePostVotesAndUserReputation(data);
}); });

@ -354,25 +354,24 @@ var bcrypt = require('bcryptjs'),
}; };
User.isOnline = function(uid, callback) { User.isOnline = function(uid, callback) {
User.getUserField(uid, 'status', function(err, status) { User.getUserFields(uid, ['username', 'userslug', 'picture', 'status'] , function(err, data) {
if(err) { if(err) {
return callback(err); return callback(err);
} }
var online = require('./socket.io').isUserOnline(uid); var online = require('./socket.io').isUserOnline(uid);
status = online ? (status || 'online') : 'offline'; data.status = online ? (data.status || 'online') : 'offline';
if(status === 'offline') { if(data.status === 'offline') {
online = false; online = false;
} }
callback(null, { data.online = online;
online: online, data.uid = uid;
uid: uid, data.timestamp = Date.now();
timestamp: Date.now(),
status: status callback(null, data);
});
}); });
}; };

Loading…
Cancel
Save