mirror of
				https://github.com/NodeBB/NodeBB.git
				synced 2025-10-31 11:05:54 +01:00 
			
		
		
		
	removed most of the debug
dont get more than 6 usernames for upvote tooltips generatePostPaths wont check null pids
This commit is contained in:
		| @@ -14,8 +14,6 @@ define('forum/topic/postTools', ['composer', 'share', 'navigator'], function(com | |||||||
|  |  | ||||||
| 		share.addShareHandlers(topicName); | 		share.addShareHandlers(topicName); | ||||||
|  |  | ||||||
| 		addFavouriteHandler(); |  | ||||||
|  |  | ||||||
| 		addVoteHandler(); | 		addVoteHandler(); | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
| @@ -37,12 +35,6 @@ define('forum/topic/postTools', ['composer', 'share', 'navigator'], function(com | |||||||
| 		}); | 		}); | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
| 	function addFavouriteHandler() { |  | ||||||
| 		$('#post-container').on('mouseenter', '.favourite-tooltip', function() { |  | ||||||
| 			loadDataAndCreateTooltip($(this), 'posts.getFavouritedUsers'); |  | ||||||
| 		}); |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	function addVoteHandler() { | 	function addVoteHandler() { | ||||||
| 		$('#post-container').on('mouseenter', '.post-row .votes', function() { | 		$('#post-container').on('mouseenter', '.post-row .votes', function() { | ||||||
| 			loadDataAndCreateTooltip($(this), 'posts.getUpvoters'); | 			loadDataAndCreateTooltip($(this), 'posts.getUpvoters'); | ||||||
| @@ -51,21 +43,21 @@ define('forum/topic/postTools', ['composer', 'share', 'navigator'], function(com | |||||||
|  |  | ||||||
| 	function loadDataAndCreateTooltip(el, method) { | 	function loadDataAndCreateTooltip(el, method) { | ||||||
| 		var pid = el.parents('.post-row').attr('data-pid'); | 		var pid = el.parents('.post-row').attr('data-pid'); | ||||||
| 		socket.emit(method, pid, function(err, usernames) { | 		socket.emit(method, pid, function(err, data) { | ||||||
| 			if (!err) { | 			if (!err) { | ||||||
| 				createTooltip(el, usernames); | 				createTooltip(el, data); | ||||||
| 			} | 			} | ||||||
| 		}); | 		}); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	function createTooltip(el, usernames) { | 	function createTooltip(el, data) { | ||||||
|  | 		var usernames = data.usernames; | ||||||
| 		if (!usernames.length) { | 		if (!usernames.length) { | ||||||
| 			return; | 			return; | ||||||
| 		} | 		} | ||||||
| 		if (usernames.length > 6) { | 		if (usernames.length + data.otherCount > 6) { | ||||||
| 			var otherCount = usernames.length - 5; | 			usernames = usernames.join(', ').replace(/,/g, '|'); | ||||||
| 			usernames = usernames.slice(0, 5).join(', ').replace(/,/g, '|'); | 			translator.translate('[[topic:users_and_others, ' + usernames + ', ' + data.otherCount + ']]', function(translated) { | ||||||
| 			translator.translate('[[topic:users_and_others, ' + usernames + ', ' + otherCount + ']]', function(translated) { |  | ||||||
| 				translated = translated.replace(/\|/g, ','); | 				translated = translated.replace(/\|/g, ','); | ||||||
| 				el.attr('title', translated).tooltip('destroy').tooltip('show'); | 				el.attr('title', translated).tooltip('destroy').tooltip('show'); | ||||||
| 			}); | 			}); | ||||||
|   | |||||||
| @@ -109,14 +109,13 @@ var async = require('async'), | |||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
| 	Posts.getPidsFromSet = function(set, start, end, reverse, callback) { | 	Posts.getPidsFromSet = function(set, start, end, reverse, callback) { | ||||||
|  | 		if (isNaN(start) || isNaN(end)) { | ||||||
|  | 			return callback(null, []); | ||||||
|  | 		} | ||||||
| 		db[reverse ? 'getSortedSetRevRange' : 'getSortedSetRange'](set, start, end, callback); | 		db[reverse ? 'getSortedSetRevRange' : 'getSortedSetRange'](set, start, end, callback); | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
| 	Posts.getPostsByPids = function(pids, callback) { | 	Posts.getPostsByPids = function(pids, callback) { | ||||||
| 		if (pids && pids.length > 100) { |  | ||||||
| 			var e = new Error('getPostsByPids'); |  | ||||||
| 			winston.warn('[GET_POST_BY_PIDS ' + pids.length, e.stack); |  | ||||||
| 		} |  | ||||||
| 		var keys = []; | 		var keys = []; | ||||||
|  |  | ||||||
| 		for(var x=0, numPids=pids.length; x<numPids; ++x) { | 		for(var x=0, numPids=pids.length; x<numPids; ++x) { | ||||||
|   | |||||||
| @@ -16,10 +16,6 @@ module.exports = function(privileges) { | |||||||
| 	privileges.posts = {}; | 	privileges.posts = {}; | ||||||
|  |  | ||||||
| 	privileges.posts.get = function(pids, uid, callback) { | 	privileges.posts.get = function(pids, uid, callback) { | ||||||
| 		if (pids && pids.length > 50) { |  | ||||||
| 			var e = new Error('too many keys') |  | ||||||
| 			winston.warn('[TOO_MANY_KEYS] ' + pids.length, e.stack); |  | ||||||
| 		} |  | ||||||
| 		async.parallel({ | 		async.parallel({ | ||||||
| 			manage_content: function(next) { | 			manage_content: function(next) { | ||||||
| 				helpers.hasEnoughReputationFor('privileges:manage_content', uid, next); | 				helpers.hasEnoughReputationFor('privileges:manage_content', uid, next); | ||||||
|   | |||||||
| @@ -254,23 +254,22 @@ SocketPosts.getPrivileges = function(socket, pid, callback) { | |||||||
| 	}); | 	}); | ||||||
| }; | }; | ||||||
|  |  | ||||||
| SocketPosts.getFavouritedUsers = function(socket, pid, callback) { |  | ||||||
| 	favourites.getFavouritedUidsByPids([pid], function(err, data) { |  | ||||||
| 		if (err || !Array.isArray(data) || !data.length) { |  | ||||||
| 			return callback(err); |  | ||||||
| 		} |  | ||||||
|  |  | ||||||
| 		user.getUsernamesByUids(data[0], callback); |  | ||||||
| 	}); |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| SocketPosts.getUpvoters = function(socket, pid, callback) { | SocketPosts.getUpvoters = function(socket, pid, callback) { | ||||||
| 	favourites.getUpvotedUidsByPids([pid], function(err, data) { | 	favourites.getUpvotedUidsByPids([pid], function(err, data) { | ||||||
| 		if (err || !Array.isArray(data) || !data.length) { | 		if (err || !Array.isArray(data) || !data.length) { | ||||||
| 			return callback(err, []); | 			return callback(err, []); | ||||||
| 		} | 		} | ||||||
|  | 		var otherCount = 0; | ||||||
| 		user.getUsernamesByUids(data[0], callback); | 		if (data[0].length > 6) { | ||||||
|  | 			otherCount = data[0].length - 5; | ||||||
|  | 			data[0] = data[0].slice(0, 5); | ||||||
|  | 		} | ||||||
|  | 		user.getUsernamesByUids(data[0], function(err, usernames) { | ||||||
|  | 			callback(err, { | ||||||
|  | 				otherCount: otherCount, | ||||||
|  | 				usernames: usernames | ||||||
|  | 			}); | ||||||
|  | 		}); | ||||||
| 	}); | 	}); | ||||||
| }; | }; | ||||||
|  |  | ||||||
|   | |||||||
| @@ -244,10 +244,6 @@ var async = require('async'), | |||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
| 	Topics.getTopicWithPosts = function(tid, set, uid, start, end, reverse, callback) { | 	Topics.getTopicWithPosts = function(tid, set, uid, start, end, reverse, callback) { | ||||||
| 		if (isNaN(start) || isNaN(end)) { |  | ||||||
| 			var e = new Error('TOO LARGE'); |  | ||||||
| 			winston.warn('IS_NAN_CHECK set, start, end, uid, tid', set, start, end, uid, tid, e.stack); |  | ||||||
| 		} |  | ||||||
| 		Topics.getTopicData(tid, function(err, topicData) { | 		Topics.getTopicData(tid, function(err, topicData) { | ||||||
| 			if (err || !topicData) { | 			if (err || !topicData) { | ||||||
| 				return callback(err || new Error('[[error:no-topic]]')); | 				return callback(err || new Error('[[error:no-topic]]')); | ||||||
| @@ -268,10 +264,7 @@ var async = require('async'), | |||||||
| 							if (err) { | 							if (err) { | ||||||
| 								return next(err); | 								return next(err); | ||||||
| 							} | 							} | ||||||
| 							if (posts.length > 100) { |  | ||||||
| 								var e = new Error('TOO LARGE'); |  | ||||||
| 								winston.warn('GET_TOPIC_WITH_POSTS set, start, end, uid, tid', set, start, end, uid, tid, e.stack); |  | ||||||
| 							} |  | ||||||
| 							Topics.addPostData(posts, uid, next); | 							Topics.addPostData(posts, uid, next); | ||||||
| 						}); | 						}); | ||||||
| 					}); | 					}); | ||||||
|   | |||||||
| @@ -38,10 +38,6 @@ module.exports = function(Topics) { | |||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
| 	Topics.addPostData = function(postData, uid, callback) { | 	Topics.addPostData = function(postData, uid, callback) { | ||||||
| 		if (postData && postData.length > 50) { |  | ||||||
| 			var e = new Error('too many keys'); |  | ||||||
| 			winston.warn('[ADD POST DATA] ' + postData.length, e.stack); |  | ||||||
| 		} |  | ||||||
| 		var pids = postData.map(function(post) { | 		var pids = postData.map(function(post) { | ||||||
| 			return post && post.pid; | 			return post && post.pid; | ||||||
| 		}); | 		}); | ||||||
|   | |||||||
| @@ -135,7 +135,7 @@ var async = require('async'), | |||||||
| 					return notification ? notification.pid : null; | 					return notification ? notification.pid : null; | ||||||
| 				}); | 				}); | ||||||
|  |  | ||||||
| 				generatePostPaths(pids, uid, function(err, paths) { | 				generatePostPaths(pids, uid, function(err, pidToPaths) { | ||||||
| 					if (err) { | 					if (err) { | ||||||
| 						return callback(err); | 						return callback(err); | ||||||
| 					} | 					} | ||||||
| @@ -146,7 +146,7 @@ var async = require('async'), | |||||||
| 						} | 						} | ||||||
|  |  | ||||||
| 						notification.read = hasRead[index]; | 						notification.read = hasRead[index]; | ||||||
| 						notification.path = paths[index] || notification.path || ''; | 						notification.path = pidToPaths[notification.pid] || notification.path || ''; | ||||||
| 						notification.datetimeISO = utils.toISOString(notification.datetime); | 						notification.datetimeISO = utils.toISOString(notification.datetime); | ||||||
| 						notification.readClass = !notification.read ? 'label-warning' : ''; | 						notification.readClass = !notification.read ? 'label-warning' : ''; | ||||||
| 						return notification; | 						return notification; | ||||||
| @@ -159,7 +159,7 @@ var async = require('async'), | |||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
| 	function generatePostPaths(pids, uid, callback) { | 	function generatePostPaths(pids, uid, callback) { | ||||||
| 		var postKeys = pids.map(function(pid) { | 		var postKeys = pids.filter(Boolean).map(function(pid) { | ||||||
| 			return 'post:' + pid; | 			return 'post:' + pid; | ||||||
| 		}); | 		}); | ||||||
|  |  | ||||||
| @@ -184,18 +184,16 @@ var async = require('async'), | |||||||
| 					return callback(err); | 					return callback(err); | ||||||
| 				} | 				} | ||||||
|  |  | ||||||
| 				var paths = []; | 				var pidToPaths = {}; | ||||||
| 				pids.forEach(function(pid, index) { | 				pids.forEach(function(pid, index) { | ||||||
| 					var slug = results.topics[index] ? results.topics[index].slug : null; | 					var slug = results.topics[index] ? results.topics[index].slug : null; | ||||||
| 					var postIndex = utils.isNumber(results.indices[index]) ? parseInt(results.indices[index], 10) + 1 : null; | 					var postIndex = utils.isNumber(results.indices[index]) ? parseInt(results.indices[index], 10) + 1 : null; | ||||||
|  |  | ||||||
| 					if (slug && postIndex) { | 					if (slug && postIndex) { | ||||||
| 						paths.push(nconf.get('relative_path') + '/topic/' + slug + '/' + postIndex); | 						pidToPaths[pid] = nconf.get('relative_path') + '/topic/' + slug + '/' + postIndex; | ||||||
| 					} else { |  | ||||||
| 						paths.push(null); |  | ||||||
| 					} | 					} | ||||||
| 				}); | 				}); | ||||||
| 				callback(null, paths); | 				callback(null, pidToPaths); | ||||||
| 			}); | 			}); | ||||||
| 		}); | 		}); | ||||||
| 	} | 	} | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user