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"]
|
|
|
|
)
|