show username on homepage

This commit is contained in:
Baris Usakli
2013-05-03 11:43:01 -04:00
parent abf4be488a
commit ed26728a0f
3 changed files with 34 additions and 28 deletions

View File

@@ -3,7 +3,7 @@
<!-- BEGIN topics --> <!-- BEGIN topics -->
<a href="topic/{topics.slug}"><li class="topic-row"> <a href="topic/{topics.slug}"><li class="topic-row">
<h4>{topics.title}</h4> <h4>{topics.title}</h4>
<p>Posted {topics.relativeTime} by <span class="username">{topics.uid}</span>. {topics.post_count} posts.</p> <p>Posted {topics.relativeTime} by <span class="username">{topics.username}</span>. {topics.post_count} posts.</p>
</li></a> </li></a>
<!-- END topics --> <!-- END topics -->
</ul> </ul>
@@ -14,20 +14,6 @@ new_post.onclick = function() {
} }
jQuery('document').ready(function() { jQuery('document').ready(function() {
jQuery('.username').each(function() {
var userId = this.innerHTML;
(function(span){
socket.on('api:user.getNameByUid', function(username) {
span.innerHTML = username;
});
})(this);
socket.emit('api:user.getNameByUid', { fields: [ 'username' ], 'uid': userId });
})

View File

@@ -1,6 +1,7 @@
var RDB = require('./redis.js'), var RDB = require('./redis.js'),
posts = require('./posts.js'), posts = require('./posts.js'),
utils = require('./utils.js'); utils = require('./utils.js'),
user = require('./user.js');
(function(Topics) { (function(Topics) {
//data structure //data structure
@@ -68,25 +69,33 @@ var RDB = require('./redis.js'),
.mget(slug) .mget(slug)
.mget(postcount) .mget(postcount)
.exec(function(err, replies) { .exec(function(err, replies) {
title = replies[0]; title = replies[0];
uid = replies[1]; uid = replies[1];
timestamp = replies[2]; timestamp = replies[2];
slug = replies[3]; slug = replies[3];
postcount = replies[4]; postcount = replies[4];
var topics = []; user.get_usernames_by_uids(uid, function(userNames) {
for (var i=0, ii=title.length; i<ii; i++) { var topics = [];
topics.push({
'title' : title[i], for (var i=0, ii=title.length; i<ii; i++) {
'uid' : uid[i],
'timestamp' : timestamp[i], topics.push({
'relativeTime': utils.relativeTime(timestamp[i]), 'title' : title[i],
'slug' : slug[i], 'uid' : uid[i],
'post_count' : postcount[i] 'username': userNames[i],
}); 'timestamp' : timestamp[i],
} 'relativeTime': utils.relativeTime(timestamp[i]),
'slug' : slug[i],
'post_count' : postcount[i]
});
}
callback({'topics': topics});
});
callback({'topics': topics});
} }
); );
} else callback([]); } else callback([]);

View File

@@ -266,6 +266,17 @@ var config = require('../config.js'),
RDB.get('uid:' + uid+ ':username', callback); RDB.get('uid:' + uid+ ':username', callback);
}; };
User.get_usernames_by_uids = function(uids, callback) {
var userIds = [];
for(var i=0, ii=uids.length; i<ii; i++) {
userIds.push('uid:' + uids[i] + ':username');
}
RDB.mget(userIds, function(data) {
callback(data);
});
};
User.get_uid_by_email = function(email, callback) { User.get_uid_by_email = function(email, callback) {
RDB.get('email:' + email, callback) RDB.get('email:' + email, callback)
}; };