mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-14 01:45:47 +01:00
closes #120
This commit is contained in:
@@ -202,6 +202,15 @@ footer.footer {
|
|||||||
vertical-align:top;
|
vertical-align:top;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.account-online-status {
|
||||||
|
.icon-circle-blank {
|
||||||
|
color:red;
|
||||||
|
}
|
||||||
|
.icon-circle {
|
||||||
|
color:green;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.user-profile-picture {
|
.user-profile-picture {
|
||||||
width:128px;
|
width:128px;
|
||||||
margin-bottom:10px;
|
margin-bottom:10px;
|
||||||
|
|||||||
@@ -37,7 +37,21 @@
|
|||||||
|
|
||||||
$('.user-recent-posts .topic-row').on('click', function() {
|
$('.user-recent-posts .topic-row').on('click', function() {
|
||||||
ajaxify.go($(this).attr('topic-url'));
|
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">
|
<div class="account-picture-block">
|
||||||
<img src="{picture}" class="user-profile-picture img-polaroid"/>
|
<img src="{picture}" class="user-profile-picture img-polaroid"/>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="account-online-status">
|
||||||
|
<span><i class="icon-circle-blank"></i> <span>offline</span></span>
|
||||||
|
</div>
|
||||||
<div id="user-actions">
|
<div id="user-actions">
|
||||||
<a id="follow-btn" href="#" class="btn">Follow</a>
|
<a id="follow-btn" href="#" class="btn">Follow</a>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -47,7 +47,8 @@ var SocketIO = require('socket.io').listen(global.server, { log:false }),
|
|||||||
|
|
||||||
userSockets[uid] = userSockets[uid] || [];
|
userSockets[uid] = userSockets[uid] || [];
|
||||||
userSockets[uid].push(socket);
|
userSockets[uid].push(socket);
|
||||||
|
if(uid)
|
||||||
|
io.sockets.in('global').emit('api:user.isOnline', isUserOnline(uid));
|
||||||
socket.join('uid_' + uid);
|
socket.join('uid_' + uid);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -61,8 +62,12 @@ var SocketIO = require('socket.io').listen(global.server, { log:false }),
|
|||||||
userSockets[uid].splice(index, 1);
|
userSockets[uid].splice(index, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(userSockets[uid].length === 0)
|
if(userSockets[uid].length === 0) {
|
||||||
delete users[sessionID];
|
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) {
|
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);
|
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) {
|
socket.on('api:user.get_online_users', function(data) {
|
||||||
var returnData = [];
|
var returnData = [];
|
||||||
|
|
||||||
for(var i=0; i<data.length; ++i) {
|
for(var i=0; i<data.length; ++i) {
|
||||||
var uid = data[i];
|
var uid = data[i];
|
||||||
if(userSockets[uid] && userSockets[uid].length > 0)
|
if(isUserOnline(uid))
|
||||||
returnData.push(uid);
|
returnData.push(uid);
|
||||||
else
|
else
|
||||||
returnData.push(0);
|
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.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) {
|
socket.on('api:user.changePassword', function(data) {
|
||||||
user.changePassword(socket, uid, data, function(success) {
|
user.changePassword(socket, uid, data, function(success) {
|
||||||
if(success) {
|
if(success) {
|
||||||
|
|||||||
Reference in New Issue
Block a user