Vulcan/packages/_nova-subscribe-to-posts/lib/custom_fields.js

58 lines
1.1 KiB
JavaScript
Raw Normal View History

2016-07-27 10:38:43 +02:00
import PublicationUtils from 'meteor/utilities:smart-publications'
import Posts from "meteor/nova:posts"
import Users from "meteor/nova:users"
// check if user can subscribe to post
const canSubscribe = user => Users.canDo(user, "posts.new");
Users.addField({
fieldName: 'telescope.subscribedItems',
fieldSchema: {
type: Object,
optional: true,
blackbox: true,
autoform: {
omit: true
}
}
});
PublicationUtils.addToFields(
Users.publishedFields.list, ["telescope.subscribedItems"]
)
Posts.addField(
{
fieldName: 'subscribers',
fieldSchema: {
type: [String],
control: "checkboxgroup",
optional: true,
insertableIf: canSubscribe,
autoform: {
2016-07-27 10:42:36 +02:00
omit: true
2016-07-27 10:38:43 +02:00
},
publish: true,
join: {
joinAs: "subscribersArray",
collection: () => Users
}
}
}
);
Posts.addField({
fieldName: 'subscriberCount',
fieldSchema: {
type: Number,
optional: true,
autoform: {
omit: true
}
}
});
PublicationUtils.addToFields(
Posts.publishedFields.list, ["subscribers", "subscriberCount"]
)