possible fix for wront sorting on /recent

v1.18.x
Baris Soner Usakli 12 years ago
parent 93c6228347
commit eec5249eb6

@ -128,7 +128,6 @@ var RDB = require('./redis.js'),
Categories.getTopicsByTids = function(tids, current_user, callback, category_id /*temporary*/) { Categories.getTopicsByTids = function(tids, current_user, callback, category_id /*temporary*/) {
var retrieved_topics = []; var retrieved_topics = [];
var topicCountToLoad = tids.length;
function getTopicInfo(topicData, callback) { function getTopicInfo(topicData, callback) {
@ -177,9 +176,8 @@ var RDB = require('./redis.js'),
return !deleted || (deleted && topicInfo.privileges.view_deleted) || topicData.uid === current_user; return !deleted || (deleted && topicInfo.privileges.view_deleted) || topicData.uid === current_user;
} }
for(var i=0; i<tids.length; ++i) { function loadTopic(tid, callback) {
topics.getTopicData(tid, function(topicData) {
topics.getTopicData(tids[i], function(topicData) {
getTopicInfo(topicData, function(topicInfo) { getTopicInfo(topicData, function(topicInfo) {
@ -198,15 +196,17 @@ var RDB = require('./redis.js'),
if (isTopicVisible(topicData, topicInfo)) if (isTopicVisible(topicData, topicInfo))
retrieved_topics.push(topicData); retrieved_topics.push(topicData);
else
--topicCountToLoad; callback(null);
if(retrieved_topics.length === topicCountToLoad) {
callback(retrieved_topics);
}
}); });
}); });
} }
async.eachSeries(tids, loadTopic, function(err) {
if(!err) {
callback(retrieved_topics);
}
});
} }

Loading…
Cancel
Save