From 161c7f1875134b848f72a7cb69df85fd8a57c673 Mon Sep 17 00:00:00 2001 From: barisusakli Date: Thu, 13 Mar 2014 15:13:47 -0400 Subject: [PATCH 1/5] closes #1201 --- public/src/forum/topic.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/public/src/forum/topic.js b/public/src/forum/topic.js index 455548b47d..a86c6d9b71 100644 --- a/public/src/forum/topic.js +++ b/public/src/forum/topic.js @@ -735,6 +735,10 @@ define(['composer', 'forum/pagination'], function(composer, pagination) { }); socket.on('event:new_post', function(data) { + if(data && data.posts && data.posts.length && data.posts[0].tid !== templates.get('topic_id')) { + return; + } + if(config.usePagination) { onNewPostPagination(data); return; From 9685cb7fe0ae745ca3fb821016cda7fa8feaedb2 Mon Sep 17 00:00:00 2001 From: barisusakli Date: Thu, 13 Mar 2014 15:23:02 -0400 Subject: [PATCH 2/5] removed broken post update --- public/src/forum/account.js | 9 --------- 1 file changed, 9 deletions(-) diff --git a/public/src/forum/account.js b/public/src/forum/account.js index dfe3c9ed11..6738f1838a 100644 --- a/public/src/forum/account.js +++ b/public/src/forum/account.js @@ -73,15 +73,6 @@ define(['forum/accountheader'], function(header) { socket.emit('user.isOnline', theirid, Account.handleUserOnline); - socket.on('event:new_post', function(data) { - templates.preload_template('account', function() { - templates['account'].parse({posts:[]}); - var html = templates.prepare(templates['account'].blocks['posts']).parse(data); - $('.user-recent-posts').prepend(html); - $('.user-recent-posts span.timeago').timeago(); - }); - }); - }); }; From 9de21995c4a24cf247b33f2f7fb1d6e83872531d Mon Sep 17 00:00:00 2001 From: psychobunny Date: Thu, 13 Mar 2014 15:46:19 -0400 Subject: [PATCH 3/5] added category bgColor and color to topics api --- src/topics.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/topics.js b/src/topics.js index 0dd7ea9452..32af5a6ebe 100644 --- a/src/topics.js +++ b/src/topics.js @@ -719,7 +719,7 @@ var async = require('async'), if (categoryCache[topicData.cid]) { return next(null, categoryCache[topicData.cid]); } - categories.getCategoryFields(topicData.cid, ['name', 'slug', 'icon'], next); + categories.getCategoryFields(topicData.cid, ['name', 'slug', 'icon', 'bgColor', 'color'], next); }, user: function(next) { if (userCache[topicData.uid]) { From e0911c1fff75563d0d6667e77bb1df0d30d64212 Mon Sep 17 00:00:00 2001 From: barisusakli Date: Thu, 13 Mar 2014 16:21:10 -0400 Subject: [PATCH 4/5] replaced exists check with getCategoryData --- src/categories.js | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/categories.js b/src/categories.js index 134fea78f2..ba875bf423 100644 --- a/src/categories.js +++ b/src/categories.js @@ -59,8 +59,8 @@ var db = require('./database'), }; Categories.getCategoryById = function(cid, start, end, uid, callback) { - CategoryTools.exists(cid, function(err, exists) { - if(err || !exists) { + Categories.getCategoryData(cid, function(err, category) { + if(err || !category) { return callback(err || new Error('category-not-found [' + cid + ']')); } @@ -69,9 +69,6 @@ var db = require('./database'), } async.parallel({ - category: function(next) { - Categories.getCategoryData(cid, next); - }, topics: function(next) { Categories.getCategoryTopics(cid, start, end, uid, next); }, @@ -83,7 +80,6 @@ var db = require('./database'), return callback(err); } - var category = results.category; category.topics = results.topics.topics; category.nextStart = results.topics.nextStart; category.pageCount = results.pageCount; From bddc270033754ba3355b1d2d5e5907eb0b43a5ee Mon Sep 17 00:00:00 2001 From: barisusakli Date: Thu, 13 Mar 2014 16:41:45 -0400 Subject: [PATCH 5/5] changed addUserInfoToPost to add a user object --- src/posts.js | 75 ++++++++++++++++++++++++++-------------------------- 1 file changed, 37 insertions(+), 38 deletions(-) diff --git a/src/posts.js b/src/posts.js index 8b295144b0..be10f66417 100644 --- a/src/posts.js +++ b/src/posts.js @@ -232,48 +232,47 @@ var db = require('./database'), return callback(err); } - postTools.parseSignature(userData.signature, function(err, signature) { - if(err) { + post.user = { + username: userData.username || 'anonymous', + userslug: userData.userslug || '', + reputation: userData.reputation || 0, + postcount: userData.postcount || 0, + banned: parseInt(userData.banned, 10) === 1, + picture: userData.picture || gravatar.url('', {}, true) + }; + + for (var info in customUserInfo) { + if (customUserInfo.hasOwnProperty(info)) { + post.user[info] = userData[info] || customUserInfo[info]; + } + } + + async.parallel({ + signature: function(next) { + if (parseInt(meta.config.disableSignatures, 10) !== 1) { + return postTools.parseSignature(userData.signature, next); + } + next(); + }, + editor: function(next) { + if (!post.editor) { + return next(); + } + user.getUserFields(post.editor, ['username', 'userslug'], next); + }, + customProfileInfo: function(next) { + plugins.fireHook('filter:posts.custom_profile_info', {profile: [], uid: post.uid, pid: post.pid}, next); + } + }, function(err, results) { + if (err) { return callback(err); } - post.username = userData.username || 'anonymous'; - post.userslug = userData.userslug || ''; - post.user_rep = userData.reputation || 0; - post.user_postcount = userData.postcount || 0; - post.user_banned = parseInt(userData.banned, 10) === 1; - post.picture = userData.picture || gravatar.url('', {}, true); + post.user.signature = results.signature; + post.editor = results.editor; + post.custom_profile_info = results.profile; - if(meta.config.disableSignatures === undefined || parseInt(meta.config.disableSignatures, 10) === 0) { - post.signature = signature; - } - - for (var info in customUserInfo) { - if (customUserInfo.hasOwnProperty(info)) { - post[info] = userData[info] || customUserInfo[info]; - } - } - - plugins.fireHook('filter:posts.custom_profile_info', {profile: [], uid: post.uid, pid: post.pid}, function(err, profile_info) { - if(err) { - return callback(err); - } - post.custom_profile_info = profile_info.profile; - - if (post.editor !== '') { - user.getUserFields(post.editor, ['username', 'userslug'], function(err, editorData) { - if (err) { - return callback(err); - } - - post.editorname = editorData.username; - post.editorslug = editorData.userslug; - callback(null, post); - }); - } else { - callback(null, post); - } - }); + callback(null, post); }); }); };