mirror of
https://github.com/NodeBB/NodeBB.git
synced 2026-01-06 15:42:52 +01:00
closes #1434
This commit is contained in:
@@ -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);
|
||||
});
|
||||
|
||||
17
src/user.js
17
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);
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user