using spacebars helpers for profileUrl, username, and displayName

This commit is contained in:
Sacha Greif 2015-05-14 16:42:19 +09:00
parent 7c39487090
commit affec3c1c8
15 changed files with 19 additions and 24 deletions

View file

@ -17,7 +17,7 @@
</div>
<div class="comment-meta">
<div class="user-avatar avatar-medium" aria-hidden="true" aria-live="off">{{> avatar userId=userId shape="circle"}}</div>
<a class="comment-username" href="{{profileUrl}}">{{authorName}}</a>
<a class="comment-username" href="{{getProfileUrl userId}}">{{authorName}}</a>
<a href="{{pathFor route='comment_reply' _id=_id}}" class="comment-permalink comment-time">{{timeAgo ago}},</a>
<span class="points">{{upvotes}}</span> <span class="unit">points </span>
{{#if canEdit this}}

View file

@ -96,12 +96,6 @@ Template.comment_item.helpers({
},
downvoted: function(){
return Meteor.user() && _.include(this.downvoters, Meteor.user()._id);
},
profileUrl: function(){
var user = Meteor.users.findOne(this.userId);
if (user) {
return Users.getProfileUrl(user);
}
}
});

View file

@ -63,21 +63,21 @@ Template.registerHelper('pluralize', function(count, string) {
return i18n.t(string);
});
Template.registerHelper('profileUrl', function(userOrUserId) {
Template.registerHelper('getProfileUrl', function(userOrUserId) {
var user = (typeof userOrUserId === 'string') ? Meteor.users.findOne(userOrUserId) : userOrUserId;
if (!!user) {
return Users.getProfileUrl(user);
}
});
Template.registerHelper('userName', function(userOrUserId) {
Template.registerHelper('getUsername', function(userOrUserId) {
var user = (typeof userOrUserId === 'string') ? Meteor.users.findOne(userOrUserId) : userOrUserId;
if (!!user) {
return Users.getUserName(user);
}
});
Template.registerHelper('displayName', function(userOrUserId) {
Template.registerHelper('getDisplayName', function(userOrUserId) {
var user = (typeof userOrUserId === 'string') ? Meteor.users.findOne(userOrUserId) : userOrUserId;
if (!!user) {
return Users.getDisplayName(user);

View file

@ -62,7 +62,7 @@ Router._filters = {
if(!this.ready() || Meteor.loggingIn()){
this.render('loading');
} else if (!Users.can.view()) {
this.render('no_rights');
this.render('no_invite');
} else {
this.next();
}
@ -200,10 +200,10 @@ Meteor.startup( function (){
// Before Hooks
Router.onBeforeAction(filters.isReady);
Router.onBeforeAction(filters.hasCompletedProfile);
Router.onBeforeAction(filters.canView, {except: ['atSignIn', 'atSignUp', 'atForgotPwd', 'atResetPwd', 'signOut']});
Router.onBeforeAction(filters.canViewPendingPosts, {only: ['post_page']});
Router.onBeforeAction(filters.canViewRejectedPosts, {only: ['post_page']});
Router.onBeforeAction(filters.hasCompletedProfile);
Router.onBeforeAction(filters.isLoggedOut, {only: []});
Router.onBeforeAction(filters.canPost, {only: ['posts_pending', 'post_submit']});
Router.onBeforeAction(filters.canEditPost, {only: ['post_edit']});

View file

@ -1,3 +1,3 @@
<template name="postAuthor">
<a class="post-author" href="{{profileUrl userId}}">{{displayName userId}}</a>
<a class="post-author" href="{{getProfileUrl userId}}">{{getDisplayName userId}}</a>
</template>

View file

@ -1,12 +1,12 @@
<template name="postAvatars">
<div aria-hidden="true" aria-live="off">
<a href="{{profileUrl userId}}" class="avatar-link avatar-small author-avatar">
<a href="{{getProfileUrl userId}}" class="avatar-link avatar-small author-avatar">
{{> avatar userId=userId shape="circle"}}
</a>
{{#if commenters}}
<div class="post-commenters">
{{#each commenters}}
<a href="{{profileUrl this}}" class="avatar-link avatar-small commenter-avatar">
<a href="{{getProfileUrl this}}" class="avatar-link avatar-small commenter-avatar">
{{> avatar userId=this shape="circle"}}
</a>
{{/each}}

View file

@ -31,7 +31,7 @@ function setupUser (user, options) {
user.telescope.displayName = user.username;
// create slug from username
user.telescope.slug = Telescope.utils.slugify(user.username);
user.telescope.slug = Telescope.utils.slugify(Users.getUserName(user));
// if this is not a dummy account, and is the first user ever, make them an admin
user.isAdmin = (!user.profile.isDummy && Meteor.users.find({'profile.isDummy': {$ne: true}}).count() === 0) ? true : false;

View file

@ -9,7 +9,7 @@ Template.usersDashboard.helpers({
{ key: 'createdAt', label: 'Member Since', tmpl: Template.users_list_created_at, sort: 'descending' },
{ key: 'isAdmin', label: 'Admin', fn: function(val){return val ? 'Yes':'No'} },
{ key: 'username', label: 'Username', tmpl: Template.users_list_username },
{ key: 'telescope.displayName', label: 'Display Name' },
{ key: 'telescope.displayName', label: 'Display Name', tmpl: Template.users_list_display_name },
{ key: 'telescope.email', label: 'Email', tmpl: Template.users_list_email },
{ key: 'telescope.postCount', label: 'Posts' },
{ key: 'telescope.commentCount', label: 'Comments' },

View file

@ -1,3 +1,3 @@
<template name="users_list_avatar">
{{> avatar user=this shape="circle"}}
<a href="{{getProfileUrl this}}">{{> avatar user=this shape="circle"}}</a>
</template>

View file

@ -0,0 +1,3 @@
<template name="users_list_display_name">
<a href="{{getProfileUrl this}}">{{getDisplayName this}}</a>
</template>

View file

@ -1,3 +1,3 @@
<template name="users_list_username">
<a href="{{profileUrl this}}">{{username}}</a>
<a href="{{getProfileUrl this}}">{{getUsername this}}</a>
</template>

View file

@ -2,7 +2,7 @@
<tr class="user">
<td aria-hidden="true">{{> avatar user=this shape="circle"}}</td>
<td>
<a href="{{getProfileUrl}}">{{displayName}}</a>
<a href="{{getProfileUrl}}">{{getDisplayName this}}</a>
<br/>
<a href="mailto:{{getEmail}}">{{getEmail}}</a>
</td>

View file

@ -2,9 +2,6 @@ Template.user_item.helpers({
createdAtFormatted: function(){
return this.createdAt ? moment(this.createdAt).fromNow() : '';
},
displayName: function(){
return Users.getDisplayName(this);
},
getEmail: function(){
return Users.getEmail(this);
},

View file

@ -40,7 +40,7 @@ Users.getDisplayNameById = function (userId) {return Users.getDisplayName(Meteor
* @param {Object} user
*/
Users.getProfileUrl = function (user) {
return this.getProfileUrlBySlugOrId(user.telescope.slug);
return Users.getProfileUrlBySlugOrId(user.telescope.slug);
};
Users.helpers({getProfileUrl: function () {return Users.getProfileUrl(this);}});

View file

@ -41,6 +41,7 @@ Package.onUse(function (api) {
'lib/client/templates/dashboard/users_list_created_at.html',
'lib/client/templates/dashboard/users_list_email.html',
'lib/client/templates/dashboard/users_list_username.html',
'lib/client/templates/dashboard/users_list_display_name.html',
'lib/client/templates/profile/user_comments.html',
'lib/client/templates/profile/user_comments.js',
'lib/client/templates/profile/user_downvoted_posts.html',