Vulcan/packages/telescope-posts/lib/client/templates/post_page.js

51 lines
1.5 KiB
JavaScript
Raw Normal View History

2015-09-17 14:51:14 +09:00
Template.post_page.onCreated(function () {
var template = this;
var postId = FlowRouter.getParam("_id");
// initialize the reactive variables
template.ready = new ReactiveVar(false);
var postSubscription = Telescope.subsManager.subscribe('singlePost', postId);
var postUsersSubscription = Telescope.subsManager.subscribe('postUsers', postId);
var commentSubscription = Telescope.subsManager.subscribe('commentsList', {view: 'postComments', postId: postId});
// Autorun 3: when subscription is ready, update the data helper's terms
template.autorun(function () {
var subscriptionsReady = postSubscription.ready(); // ⚡ reactive ⚡
// if subscriptions are ready, set terms to subscriptionsTerms
if (subscriptionsReady) {
template.ready.set(true);
}
});
});
Template.post_page.helpers({
2015-09-17 14:51:14 +09:00
ready: function () {
return Template.instance().ready.get();
},
post: function () {
return Posts.findOne(FlowRouter.getParam("_id"));
},
canView: function () {
var post = this;
var user = Meteor.user();
if (post.status === Posts.config.STATUS_PENDING && !Users.can.viewPendingPost(user, post)) {
return false;
} else if (post.status === Posts.config.STATUS_REJECTED && !Users.can.viewRejectedPost(user, post)) {
return false;
}
return true;
},
isPending: function () {
2015-09-03 09:30:04 +09:00
return this.status === Posts.config.STATUS_PENDING;
}
});
Template.post_page.rendered = function(){
$('body').scrollTop(0);
};