From 3df8d7279b45dcf8fc0b05141110df812508cb05 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Fri, 17 May 2013 13:28:34 -0400 Subject: [PATCH] rejigged Topics.get so that it does not return a hardcoded return if no topics were returned --- src/topics.js | 122 +++++++++++++++++++++++++------------------------- src/user.js | 3 +- 2 files changed, 63 insertions(+), 62 deletions(-) diff --git a/src/topics.js b/src/topics.js index b7a488b074..166698b239 100644 --- a/src/topics.js +++ b/src/topics.js @@ -75,24 +75,24 @@ marked.setOptions({ active_usernames = replies[1]; var topics = []; - if (tids.length > 0) { - title = replies[2]; - uid = replies[3]; - timestamp = replies[4]; - slug = replies[5]; - postcount = replies[6]; - locked = replies[7]; - deleted = replies[8]; - pinned = replies[9]; - - var usernames, - has_read, - moderators, - teaser_info; - - function generate_topic() { - if (!usernames || !has_read || !moderators || !teaser_info) return; - + title = replies[2]; + uid = replies[3]; + timestamp = replies[4]; + slug = replies[5]; + postcount = replies[6]; + locked = replies[7]; + deleted = replies[8]; + pinned = replies[9]; + + var usernames, + has_read, + moderators, + teaser_info; + + function generate_topic() { + if (!usernames || !has_read || !moderators || !teaser_info) return; + + if (tids.length > 0) { for (var i=0, ii=title.length; i 0 ? '' : 'none', - 'moderators': moderators - }); - } - - user.get_usernames_by_uids(uid, function(userNames) { - usernames = userNames; - generate_topic(); - }); - - Topics.hasReadTopics(tids, current_user, function(hasRead) { - has_read = hasRead; - generate_topic(); }); - categories.getModerators(category_id, function(mods) { - moderators = mods; - generate_topic(); - }); + var active_users = []; + for (var username in active_usernames) { + active_users.push({'username': active_usernames[username]}); + } - Topics.get_teasers(tids, function(teasers) { - teaser_info = teasers; - generate_topic(); - }); - } - else { callback({ 'category_name' : category_id ? category_name : 'Recent', 'show_topic_button' : category_id ? 'show' : 'hidden', 'category_id': category_id || 0, - 'topics': [] + 'topics': topics, + 'active_users': active_users, + 'moderator_block_class': moderators.length > 0 ? '' : 'none', + 'moderators': moderators }); } + + user.get_usernames_by_uids(uid, function(userNames) { + usernames = userNames; + generate_topic(); + }); + + Topics.hasReadTopics(tids, current_user, function(hasRead) { + has_read = hasRead; + generate_topic(); + }); + + categories.getModerators(category_id, function(mods) { + moderators = mods; + generate_topic(); + }); + + Topics.get_teasers(tids, function(teasers) { + teaser_info = teasers; + generate_topic(); + }); + // else { + // callback({ + // 'category_name' : category_id ? category_name : 'Recent', + // 'show_topic_button' : category_id ? 'show' : 'hidden', + // 'category_id': category_id || 0, + // 'topics': [] + // }); + // } }); }); } diff --git a/src/user.js b/src/user.js index 0d3dde7a72..eec041c68a 100644 --- a/src/user.js +++ b/src/user.js @@ -447,8 +447,9 @@ var config = require('../config.js'), }; User.get_usernames_by_uids = function(uids, callback) { - var usernames = []; + + if (!Array.isArray(uids)) return callback([]); for(var i=0, ii=uids.length; i