From 0c71707fb5bb52196a367c440da8ee930d80e051 Mon Sep 17 00:00:00 2001
From: Julian Lam <julian@designcreateplay.com>
Date: Sun, 26 Jan 2014 16:22:50 -0500
Subject: [PATCH] fixed #877

---
 public/src/forum/topic.js |  6 +++---
 src/socket.io/topics.js   | 16 +++++++++++-----
 2 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/public/src/forum/topic.js b/public/src/forum/topic.js
index 518ea3d64b..b241c9cc5e 100644
--- a/public/src/forum/topic.js
+++ b/public/src/forum/topic.js
@@ -1097,7 +1097,7 @@ define(['composer', 'forum/pagination'], function(composer, pagination) {
 
 		var insertAfter = findInsertionPoint();
 
-		parseAndTranslatePosts(data.posts, function(translatedHTML) {
+		parseAndTranslatePosts(data, function(translatedHTML) {
 			var translated = $(translatedHTML);
 
 			if(!infiniteLoaded) {
@@ -1112,8 +1112,8 @@ define(['composer', 'forum/pagination'], function(composer, pagination) {
 		});
 	}
 
-	function parseAndTranslatePosts(posts, callback) {
-		var html = templates.prepare(templates['topic'].blocks['posts']).parse({posts: posts});
+	function parseAndTranslatePosts(data, callback) {
+		var html = templates.prepare(templates['topic'].blocks['posts']).parse(data);
 		var regexp = new RegExp("<!--[\\s]*IF @first[\\s]*-->([\\s\\S]*?)<!--[\\s]*ENDIF @first[\\s]*-->", 'g');
 		html = html.replace(regexp, '');
 
diff --git a/src/socket.io/topics.js b/src/socket.io/topics.js
index 6ea39afbc9..b81b484610 100644
--- a/src/socket.io/topics.js
+++ b/src/socket.io/topics.js
@@ -1,6 +1,9 @@
 var topics = require('../topics'),
 	threadTools = require('../threadTools'),
 	index = require('./index'),
+
+	async = require('async'),
+
 	SocketTopics = {};
 
 SocketTopics.post = function(socket, data, callback) {
@@ -236,12 +239,15 @@ SocketTopics.loadMore = function(socket, data, callback) {
 	var start = data.after,
 		end = start + postsPerPage - 1;
 
-	topics.getTopicPosts(data.tid, start, end, socket.uid, function(err, posts) {
-		if(err) {
-			return callback(err);
+	async.parallel({
+		posts: function(next) {
+			topics.getTopicPosts(data.tid, start, end, socket.uid, next);
+		},
+		privileges: function(next) {
+			threadTools.privileges(data.tid, socket.uid, next);
 		}
-
-		callback(err, {posts: posts});
+	}, function(err, results) {
+		callback(err, results);
 	});
 };