v1.18.x
Baris Soner Usakli 12 years ago
parent 5b349dbfaa
commit 08e3eac008

@ -201,6 +201,15 @@ footer.footer {
display:inline-block;
vertical-align:top;
}
.account-online-status {
.icon-circle-blank {
color:red;
}
.icon-circle {
color:green;
}
}
.user-profile-picture {
width:128px;

@ -37,7 +37,21 @@
$('.user-recent-posts .topic-row').on('click', function() {
ajaxify.go($(this).attr('topic-url'));
})
});
var onlineStatus = $('.account-online-status');
socket.on('api:user.isOnline', function(online) {
if(online) {
onlineStatus.find('span span').text('online');
onlineStatus.find('i').attr('class', 'icon-circle');
} else {
onlineStatus.find('span span').text('offline');
onlineStatus.find('i').attr('class', 'icon-circle-blank');
}
});
socket.emit('api:user.isOnline', theirid);
});

@ -20,6 +20,9 @@
<div class="account-picture-block">
<img src="{picture}" class="user-profile-picture img-polaroid"/>
</div>
<div class="account-online-status">
<span><i class="icon-circle-blank"></i> <span>offline</span></span>
</div>
<div id="user-actions">
<a id="follow-btn" href="#" class="btn">Follow</a>
</div>

@ -47,7 +47,8 @@ var SocketIO = require('socket.io').listen(global.server, { log:false }),
userSockets[uid] = userSockets[uid] || [];
userSockets[uid].push(socket);
if(uid)
io.sockets.in('global').emit('api:user.isOnline', isUserOnline(uid));
socket.join('uid_' + uid);
});
});
@ -61,8 +62,12 @@ var SocketIO = require('socket.io').listen(global.server, { log:false }),
userSockets[uid].splice(index, 1);
}
if(userSockets[uid].length === 0)
if(userSockets[uid].length === 0) {
delete users[sessionID];
console.log('dc ', userSockets[uid]);
if(uid)
io.sockets.in('global').emit('api:user.isOnline', isUserOnline(uid));
}
for(var roomName in rooms) {
@ -215,12 +220,16 @@ var SocketIO = require('socket.io').listen(global.server, { log:false }),
user.reset.commit(socket, data.code, data.password);
});
function isUserOnline(uid) {
return !!userSockets[uid] && userSockets[uid].length > 0;
}
socket.on('api:user.get_online_users', function(data) {
var returnData = [];
for(var i=0; i<data.length; ++i) {
var uid = data[i];
if(userSockets[uid] && userSockets[uid].length > 0)
if(isUserOnline(uid))
returnData.push(uid);
else
returnData.push(0);
@ -228,6 +237,10 @@ var SocketIO = require('socket.io').listen(global.server, { log:false }),
socket.emit('api:user.get_online_users', returnData);
});
socket.on('api:user.isOnline', function(uid) {
socket.emit('api:user.isOnline', isUserOnline(uid));
});
socket.on('api:user.changePassword', function(data) {
user.changePassword(socket, uid, data, function(success) {
if(success) {

Loading…
Cancel
Save