2014-08-02 11:00:28 +09:00
|
|
|
campaignSchema = new SimpleSchema({
|
|
|
|
_id: {
|
|
|
|
type: String,
|
|
|
|
optional: true
|
|
|
|
},
|
|
|
|
createdAt: {
|
|
|
|
type: Date,
|
|
|
|
optional: true
|
|
|
|
},
|
|
|
|
sentAt: {
|
|
|
|
type: String,
|
|
|
|
optional: true
|
|
|
|
},
|
|
|
|
status: {
|
|
|
|
type: String,
|
|
|
|
optional: true
|
|
|
|
},
|
|
|
|
posts: {
|
|
|
|
type: [String],
|
|
|
|
optional: true
|
|
|
|
},
|
2014-08-02 16:11:54 +09:00
|
|
|
webHits: {
|
|
|
|
type: Number,
|
|
|
|
optional: true
|
|
|
|
},
|
2014-08-02 11:00:28 +09:00
|
|
|
});
|
|
|
|
|
|
|
|
Campaigns = new Meteor.Collection("campaigns", {
|
|
|
|
schema: campaignSchema
|
|
|
|
});
|
|
|
|
|
|
|
|
addToPostSchema.push(
|
|
|
|
{
|
2014-08-04 19:02:21 +09:00
|
|
|
propertyName: 'scheduledAt',
|
2014-08-02 11:00:28 +09:00
|
|
|
propertySchema: {
|
|
|
|
type: Date,
|
|
|
|
optional: true
|
|
|
|
}
|
|
|
|
}
|
|
|
|
);
|
|
|
|
|
2014-08-04 19:02:21 +09:00
|
|
|
var postsPerNewsletter = {
|
|
|
|
propertyName: 'postsPerNewsletter',
|
|
|
|
propertySchema: {
|
|
|
|
type: Number,
|
|
|
|
optional: true
|
|
|
|
}
|
|
|
|
}
|
|
|
|
addToSettingsSchema.push(postsPerNewsletter);
|
|
|
|
|
|
|
|
var newsletterFrequency = {
|
|
|
|
propertyName: 'newsletterFrequency',
|
|
|
|
propertySchema: {
|
|
|
|
type: Number,
|
|
|
|
optional: true,
|
|
|
|
label: 'Send newsletter every X days (requires restart)'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
addToSettingsSchema.push(newsletterFrequency);
|
|
|
|
|
|
|
|
// create new "campaign" lens for all posts from the past X days that haven't been scheduled yet
|
2014-08-02 11:00:28 +09:00
|
|
|
viewParameters.campaign = function (terms) {
|
|
|
|
return {
|
2014-08-04 19:02:21 +09:00
|
|
|
find: {
|
|
|
|
scheduledAt: {$exists: false},
|
|
|
|
postedAt: {
|
|
|
|
$gte: terms.after
|
|
|
|
}
|
|
|
|
},
|
2014-08-02 11:00:28 +09:00
|
|
|
options: {sort: {sticky: -1, score: -1}}
|
|
|
|
};
|
2014-08-05 10:16:05 +09:00
|
|
|
}
|
|
|
|
|
|
|
|
heroModules.push({
|
|
|
|
template: 'newsletterBanner'
|
|
|
|
});
|