Vulcan/packages/telescope-posts/lib/client/templates/post_submit.js
2015-09-17 14:51:14 +09:00

58 lines
No EOL
1.7 KiB
JavaScript

Template.post_submit.onCreated(function () {
Telescope.subsManager.subscribe('allUsersAdmin');
});
Template.post_submit.helpers({
postFields: function () {
return Posts.simpleSchema().getEditableFields(Meteor.user());
}
});
AutoForm.hooks({
submitPostForm: {
before: {
method: function(doc) {
var post = doc;
this.template.$('button[type=submit]').addClass('loading');
// ------------------------------ Checks ------------------------------ //
if (!Meteor.user()) {
Messages.flash(i18n.t('you_must_be_logged_in'), 'error');
return false;
}
// ------------------------------ Callbacks ------------------------------ //
// run all post submit client callbacks on properties object successively
post = Telescope.callbacks.run("postSubmitClient", post);
return post;
}
},
onSuccess: function(operation, post) {
Events.track("new post", {'postId': post._id});
var template = this.template;
Telescope.subsManager.subscribe('singlePost', post._id, function () {
template.$('button[type=submit]').removeClass('loading');
Router.go('post_page', post);
});
},
onError: function(operation, error) {
this.template.$('button[type=submit]').removeClass('loading');
Messages.flash(error.message.split('|')[0], 'error'); // workaround because error.details returns undefined
Messages.clearSeen();
// $(e.target).removeClass('disabled');
if (error.error === 603) {
var dupePostId = error.reason.split('|')[1];
Router.go('post_page', {slug: '_', _id: dupePostId});
}
}
}
});