From 7339cb5d616edda9e765f0f2e416cf3c25b84f0b Mon Sep 17 00:00:00 2001 From: barisusakli Date: Thu, 24 Apr 2014 16:19:31 -0400 Subject: [PATCH] closes #1434 --- public/src/forum/topic.js | 13 +++++++++++++ src/user.js | 17 ++++++++--------- 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/public/src/forum/topic.js b/public/src/forum/topic.js index 3162f87f61..50954debfa 100644 --- a/public/src/forum/topic.js +++ b/public/src/forum/topic.js @@ -243,8 +243,21 @@ define(['forum/pagination', 'forum/topic/threadTools', 'forum/topic/postTools', socket.on('user.isOnline', function(err, data) { 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) { updatePostVotesAndUserReputation(data); }); diff --git a/src/user.js b/src/user.js index 202b511df8..d0df487313 100644 --- a/src/user.js +++ b/src/user.js @@ -354,25 +354,24 @@ var bcrypt = require('bcryptjs'), }; User.isOnline = function(uid, callback) { - User.getUserField(uid, 'status', function(err, status) { + User.getUserFields(uid, ['username', 'userslug', 'picture', 'status'] , function(err, data) { if(err) { return callback(err); } 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; } - callback(null, { - online: online, - uid: uid, - timestamp: Date.now(), - status: status - }); + data.online = online; + data.uid = uid; + data.timestamp = Date.now(); + + callback(null, data); }); };