mirror of
				https://github.com/NodeBB/NodeBB.git
				synced 2025-10-31 11:05:54 +01:00 
			
		
		
		
	closes #2516
This commit is contained in:
		| @@ -58,7 +58,14 @@ define('forum/topic', [ | |||||||
|  |  | ||||||
| 		$(window).trigger('action:topic.loaded'); | 		$(window).trigger('action:topic.loaded'); | ||||||
|  |  | ||||||
| 		socket.emit('topics.enter', tid); | 		if (app.user.uid) { | ||||||
|  | 			socket.emit('topics.enter', tid, function(err, data) { | ||||||
|  | 				if (err) { | ||||||
|  | 					return app.alertError(err.message); | ||||||
|  | 				} | ||||||
|  | 				browsing.onUpdateUsersInRoom(data); | ||||||
|  | 			}); | ||||||
|  | 		} | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
| 	Topic.toTop = function() { | 	Topic.toTop = function() { | ||||||
|   | |||||||
| @@ -13,7 +13,6 @@ define('forum/topic/events', [ | |||||||
| 	var Events = {}; | 	var Events = {}; | ||||||
|  |  | ||||||
| 	var events = { | 	var events = { | ||||||
| 		'event:update_users_in_room': browsing.onUpdateUsersInRoom, |  | ||||||
| 		'event:user_enter': browsing.onUserEnter, | 		'event:user_enter': browsing.onUserEnter, | ||||||
| 		'event:user_leave': browsing.onUserLeave, | 		'event:user_leave': browsing.onUserLeave, | ||||||
| 		'event:user_status_change': browsing.onUserStatusChange, | 		'event:user_status_change': browsing.onUserStatusChange, | ||||||
|   | |||||||
| @@ -270,7 +270,7 @@ Sockets.isUsersOnline = function(uids, callback) { | |||||||
| 	callback(null, uids.map(Sockets.isUserOnline)); | 	callback(null, uids.map(Sockets.isUserOnline)); | ||||||
| }; | }; | ||||||
|  |  | ||||||
| Sockets.updateRoomBrowsingText = function (roomName, selfUid) { | Sockets.getUsersInRoom = function (uid, roomName, callback) { | ||||||
| 	if (!roomName) { | 	if (!roomName) { | ||||||
| 		return; | 		return; | ||||||
| 	} | 	} | ||||||
| @@ -278,22 +278,22 @@ Sockets.updateRoomBrowsingText = function (roomName, selfUid) { | |||||||
| 	var	uids = Sockets.getUidsInRoom(roomName); | 	var	uids = Sockets.getUidsInRoom(roomName); | ||||||
| 	var total = uids.length; | 	var total = uids.length; | ||||||
| 	uids = uids.slice(0, 9); | 	uids = uids.slice(0, 9); | ||||||
| 	if (selfUid) { | 	if (uid) { | ||||||
| 		uids = [selfUid].concat(uids); | 		uids = [uid].concat(uids); | ||||||
| 	} | 	} | ||||||
| 	if (!uids.length) { | 	if (!uids.length) { | ||||||
| 		return; | 		return callback(null, {users: [], total: 0 , room: roomName}); | ||||||
| 	} | 	} | ||||||
| 	user.getMultipleUserFields(uids, ['uid', 'username', 'userslug', 'picture', 'status'], function(err, users) { | 	user.getMultipleUserFields(uids, ['uid', 'username', 'userslug', 'picture', 'status'], function(err, users) { | ||||||
| 		if (err) { | 		if (err) { | ||||||
| 			return; | 			return callback(err); | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
| 		users = users.filter(function(user) { | 		users = users.filter(function(user) { | ||||||
| 			return user && user.status !== 'offline'; | 			return user && user.status !== 'offline'; | ||||||
| 		}); | 		}); | ||||||
|  |  | ||||||
| 		io.sockets.in(roomName).emit('event:update_users_in_room', { | 		callback(null, { | ||||||
| 			users: users, | 			users: users, | ||||||
| 			room: roomName, | 			room: roomName, | ||||||
| 			total: Math.max(0, total - uids.length) | 			total: Math.max(0, total - uids.length) | ||||||
|   | |||||||
| @@ -70,9 +70,16 @@ SocketTopics.enter = function(socket, tid, callback) { | |||||||
| 	if (!parseInt(tid, 10) || !socket.uid) { | 	if (!parseInt(tid, 10) || !socket.uid) { | ||||||
| 		return; | 		return; | ||||||
| 	} | 	} | ||||||
|  | 	async.parallel({ | ||||||
| 	SocketTopics.markAsRead(socket, [tid], callback); | 		markAsRead: function(next) { | ||||||
| 	websockets.updateRoomBrowsingText('topic_' + tid); | 			SocketTopics.markAsRead(socket, [tid], next); | ||||||
|  | 		}, | ||||||
|  | 		users: function(next) { | ||||||
|  | 			websockets.getUsersInRoom(socket.uid, 'topic_' + tid, next); | ||||||
|  | 		} | ||||||
|  | 	}, function(err, result) { | ||||||
|  | 		callback(err, result ? result.users : null); | ||||||
|  | 	}); | ||||||
| }; | }; | ||||||
|  |  | ||||||
| SocketTopics.postcount = function(socket, tid, callback) { | SocketTopics.postcount = function(socket, tid, callback) { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user