Vulcan/client/views/posts/modules/post_info.js
Charlie DeTar 83bb43ab46 Add hooks so packages can modify profiles
Add the following hooks:
 - ``addToUserSchema``: fields to add to the (currently unused) user
   Schema
 - ``postAuthor``: templates to use when rendering the post author in the
   byline
 - ``userProfileDisplay``: additional templates to add to the user
   profile display.
 - ``userProfileEdit``: additional templates to add to the user profile
   editing form.
 - ``userProfileFinishSignup``: additional templates to show in the view
   for completing user signup (adding email, username, etc).
 - ``userEditRenderedCallbacks``: Callbacks executed on "rendered" for
   user_edit view.
 - ``userEditClientCallbacks``: Callbacks used to further process user
   properties before saving changes in user_edit view.
 - ``userProfileCompleteChecks``: Functions called to determine whether
   a user profile is "complete" (e.g. has email, username, and whatever
   else).

These hooks facilitate package authors changing which profile fields are
displayed, which profile fields are required, and how to display
usernames next to posts.
2014-10-27 17:59:12 -06:00

31 lines
No EOL
912 B
JavaScript

Template[getTemplate('postInfo')].helpers({
pointsUnitDisplayText: function(){
return this.upvotes == 1 ? i18n.t('point') : i18n.t('points');
},
can_edit: function(){
return canEdit(Meteor.user(), this);
},
ago: function(){
// if post is approved show submission time, else show creation time.
time = this.status == STATUS_APPROVED ? this.postedAt : this.createdAt;
return moment(time).fromNow();
},
postAuthor: function() {
return postAuthor
},
getTemplate: function() {
return getTemplate(this.template);
}
});
Template[getTemplate('postAuthorName')].helpers({
authorName: function(){
return getAuthorName(this);
},
profileUrl: function(){
// note: we don't want the post to be re-rendered every time user properties change
var user = Meteor.users.findOne(this.userId, {reactive: false});
if(user)
return getProfileUrl(user);
}
})