mirror of
				https://github.com/NodeBB/NodeBB.git
				synced 2025-10-30 02:25:55 +01:00 
			
		
		
		
	Move to client side
This commit is contained in:
		| @@ -342,7 +342,16 @@ define(['composer'], function(composer) { | |||||||
| 				} | 				} | ||||||
| 			})(); | 			})(); | ||||||
|  |  | ||||||
| 			$('.favourite-tooltip').tooltip(); | 			$('#post-container').on('mouseenter', '.favourite-tooltip', function(e) { | ||||||
|  | 				if (!$(this).data('users-loaded')) { | ||||||
|  | 					$(this).data('users-loaded', "true"); | ||||||
|  | 					var pid = $(this).parents('.post-row').attr('data-pid'); | ||||||
|  | 					var el = $(this).attr('title', "Loading..."); | ||||||
|  | 					socket.emit('posts.getFavouritedUsers', pid, function(err, usernames) { | ||||||
|  | 						el.attr('title', usernames).tooltip('show'); | ||||||
|  | 					}); | ||||||
|  | 				} | ||||||
|  | 			}); | ||||||
| 		}); | 		}); | ||||||
|  |  | ||||||
| 		function enableInfiniteLoading() { | 		function enableInfiniteLoading() { | ||||||
|   | |||||||
| @@ -66,7 +66,7 @@ | |||||||
| 							<!-- IF @first --> | 							<!-- IF @first --> | ||||||
| 							<button class="btn btn-sm btn-default follow" type="button" title="Be notified of new replies in this topic"><i class="fa fa-eye"></i></button> | 							<button class="btn btn-sm btn-default follow" type="button" title="Be notified of new replies in this topic"><i class="fa fa-eye"></i></button> | ||||||
| 							<!-- ENDIF @first --> | 							<!-- ENDIF @first --> | ||||||
| 							<button title="{posts.favourited_users}" data-favourited="{posts.favourited}" class="favourite favourite-tooltip btn btn-sm btn-default <!-- IF posts.favourited --> btn-warning <!-- ENDIF posts.favourited -->" type="button"> | 							<button data-favourited="{posts.favourited}" class="favourite favourite-tooltip btn btn-sm btn-default <!-- IF posts.favourited --> btn-warning <!-- ENDIF posts.favourited -->" type="button"> | ||||||
| 								<span class="favourite-text">[[topic:favourite]]</span> | 								<span class="favourite-text">[[topic:favourite]]</span> | ||||||
| 								<span class="post_rep_{posts.pid}">{posts.reputation} </span> | 								<span class="post_rep_{posts.pid}">{posts.reputation} </span> | ||||||
| 								<!-- IF posts.favourited --> | 								<!-- IF posts.favourited --> | ||||||
|   | |||||||
| @@ -3,6 +3,7 @@ var	posts = require('../posts'), | |||||||
| 	topics = require('../topics'), | 	topics = require('../topics'), | ||||||
| 	favourites = require('../favourites'), | 	favourites = require('../favourites'), | ||||||
| 	postTools = require('../postTools'), | 	postTools = require('../postTools'), | ||||||
|  | 	user = require('../user'), | ||||||
| 	index = require('./index'), | 	index = require('./index'), | ||||||
|  |  | ||||||
| 	SocketPosts = {}; | 	SocketPosts = {}; | ||||||
| @@ -168,4 +169,28 @@ SocketPosts.getPrivileges = function(socket, pid, callback) { | |||||||
| 	}); | 	}); | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | SocketPosts.getFavouritedUsers = function(socket, pid, callback) { | ||||||
|  | 	favourites.getFavouritedUidsByPids([pid], function(data) { | ||||||
|  | 		var max = 5; //hardcoded | ||||||
|  | 		var usernames = ""; | ||||||
|  |  | ||||||
|  | 		var pid_uids = data[pid]; | ||||||
|  | 		var rest_amount = 0; | ||||||
|  | 		if (data.hasOwnProperty(pid) && pid_uids.length > 0) { | ||||||
|  | 			if (pid_uids.length > max) { | ||||||
|  | 				rest_amount = pid_uids.length - max; | ||||||
|  | 				pid_uids = pid_uids.slice(0, max); | ||||||
|  | 			} | ||||||
|  | 			user.getUsernamesByUids(pid_uids, function(result) { | ||||||
|  | 				usernames = result.join(', ') + (rest_amount > 0 | ||||||
|  | 					? " and " + rest_amount + (rest_amount > 1 ? " others" : " other") | ||||||
|  | 					: ""); | ||||||
|  | 				callback(null, usernames); | ||||||
|  | 			}); | ||||||
|  | 		} else { | ||||||
|  | 			callback(null, ""); | ||||||
|  | 		} | ||||||
|  | 	}); | ||||||
|  | }; | ||||||
|  |  | ||||||
| module.exports = SocketPosts; | module.exports = SocketPosts; | ||||||
| @@ -370,33 +370,6 @@ var async = require('async'), | |||||||
| 				}); | 				}); | ||||||
| 			} | 			} | ||||||
|  |  | ||||||
| 			function getFavouritedUsers(next) { |  | ||||||
| 				favourites.getFavouritedUidsByPids(pids, function(data) { |  | ||||||
| 					var max = 5; //hardcoded |  | ||||||
| 					var usernames = {}; |  | ||||||
| 					async.each(pids, function(pid, next) { |  | ||||||
| 						var pid_uids = data[pid]; |  | ||||||
| 						var rest_amount = 0; |  | ||||||
| 						if (data.hasOwnProperty(pid) && pid_uids.length > 0) { |  | ||||||
| 							if (pid_uids.length > max) { |  | ||||||
| 								rest_amount = pid_uids.length - max; |  | ||||||
| 								pid_uids = pid_uids.slice(0, max); |  | ||||||
| 							} |  | ||||||
| 							user.getUsernamesByUids(pid_uids, function(result) { |  | ||||||
| 								usernames[pid] = result.join(', ') + (rest_amount > 0 |  | ||||||
| 									? " and " + rest_amount + (rest_amount > 1 ? " others" : " other") |  | ||||||
| 									: ""); |  | ||||||
| 							}); |  | ||||||
| 						} else { |  | ||||||
| 							usernames[pid] = []; |  | ||||||
| 						} |  | ||||||
| 						next(); |  | ||||||
| 					}, function(err) { |  | ||||||
| 						next(err, usernames); |  | ||||||
| 					}); |  | ||||||
| 				}); |  | ||||||
| 			} |  | ||||||
|  |  | ||||||
| 			function addUserInfoToPosts(next) { | 			function addUserInfoToPosts(next) { | ||||||
| 				function iterator(post, callback) { | 				function iterator(post, callback) { | ||||||
| 					posts.addUserInfoToPost(post, function() { | 					posts.addUserInfoToPost(post, function() { | ||||||
| @@ -426,19 +399,17 @@ var async = require('async'), | |||||||
| 				} | 				} | ||||||
| 			} | 			} | ||||||
|  |  | ||||||
| 			async.parallel([getFavouritesData, addUserInfoToPosts, getPrivileges, getFavouritedUsers], function(err, results) { | 			async.parallel([getFavouritesData, addUserInfoToPosts, getPrivileges], function(err, results) { | ||||||
| 				if(err) { | 				if(err) { | ||||||
| 					return callback(err); | 					return callback(err); | ||||||
| 				} | 				} | ||||||
|  |  | ||||||
| 				var fav_data = results[0], | 				var fav_data = results[0], | ||||||
| 					privileges = results[2], | 					privileges = results[2]; | ||||||
| 					fav_users = results[3]; |  | ||||||
|  |  | ||||||
| 				for (var i = 0; i < postData.length; ++i) { | 				for (var i = 0; i < postData.length; ++i) { | ||||||
| 					var pid = postData[i].pid; | 					var pid = postData[i].pid; | ||||||
| 					postData[i].favourited = fav_data[pid]; | 					postData[i].favourited = fav_data[pid]; | ||||||
| 					postData[i].favourited_users = fav_users[pid]; |  | ||||||
| 					postData[i].display_moderator_tools = (current_user != 0) && privileges[pid].editable; | 					postData[i].display_moderator_tools = (current_user != 0) && privileges[pid].editable; | ||||||
| 					postData[i].display_move_tools = privileges[pid].move ? '' : 'hidden'; | 					postData[i].display_move_tools = privileges[pid].move ? '' : 'hidden'; | ||||||
| 				} | 				} | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user