v1.18.x
barisusakli 11 years ago
parent f0a19b06c2
commit 10d8eed7b9

@ -41,11 +41,10 @@ define(['taskbar', 'string', 'sounds'], function(taskbar, S, sounds) {
.html('<a href="javascript:app.openChat(\'' +
userObj.username +
'\', ' + userObj.uid +
');"><img src="' +
userObj.picture +
'" title="' +
userObj.username +
'" />' + userObj.username + '</a>')
');">'+
'<i class="fa fa-circle status ' + userObj.status + '"></i> ' +
'<img src="' + userObj.picture + '" title="' + userObj.username +'" />' +
userObj.username + '</a>')
.appendTo(chatsListEl);
}
});

@ -131,7 +131,15 @@ var db = require('./database'),
return !!user.uid;
});
callback(null, users);
async.map(users, function(userData, next) {
user.isOnline(userData.uid, function(err, data) {
if (err) {
return next(err);
}
userData.status = data.status;
next(null, userData);
});
}, callback);
});
});
};

@ -48,32 +48,7 @@ SocketUser.reset.commit = function(socket, data, callback) {
};
SocketUser.isOnline = function(socket, uid, callback) {
user.getUserField(uid, 'status', function(err, status) {
if(err) {
return callback(err);
}
if(!status) {
status = 'online';
}
var online = module.parent.exports.isUserOnline(uid);
if(!online) {
status = 'offline';
}
if(status === 'offline') {
online = false;
}
callback(null, {
online: online,
uid: uid,
timestamp: Date.now(),
status: status
});
});
user.isOnline(uid, callback);
};
SocketUser.changePassword = function(socket, data, callback) {

@ -429,5 +429,28 @@ var bcrypt = require('bcryptjs'),
groups.isMemberByGroupName(uid, 'administrators', callback);
};
User.isOnline = function(uid, callback) {
User.getUserField(uid, 'status', function(err, status) {
if(err) {
return callback(err);
}
var online = require('./socket.io').isUserOnline(uid);
status = online ? (status || 'online') : 'offline';
if(status === 'offline') {
online = false;
}
callback(null, {
online: online,
uid: uid,
timestamp: Date.now(),
status: status
});
});
};
}(exports));

Loading…
Cancel
Save