Adding newsletter time setting

This commit is contained in:
Anthony Mayer 2015-01-20 00:11:30 -08:00
parent 3b51d0ef1c
commit f771093a06
4 changed files with 42 additions and 30 deletions

View file

@ -9,6 +9,7 @@
"mailChimpListId": "MailChimp List ID",
"postsPerNewsletter": "Posts per Newsletter",
"newsletterFrequency": "Newsletter Frequency",
"newsletterTime": "Newsletter Time",
"enableNewsletter": "Enable Newsletter",
"autoSubscribe": "Auto Subscribe"
}

View file

@ -141,6 +141,21 @@ var newsletterFrequency = {
}
addToSettingsSchema.push(newsletterFrequency);
var newsletterTime = {
propertyName: 'newsletterTime',
propertySchema: {
type: String,
optional: true,
defaultValue: '00:00',
autoform: {
group: 'newsletter',
instructions: 'Defaults to 00:00/12:00 AM. Time to send out newsletter if enabled.',
type: 'time'
}
}
}
addToSettingsSchema.push(newsletterTime);
var autoSubscribe = {
propertyName: 'autoSubscribe',
propertySchema: {

View file

@ -5,32 +5,34 @@ SyncedCron.options = {
collectionTTL: 172800
}
Later = Npm.require('later');
defaultFrequency = 7; // once a week
defaultTime = '00:00';
getSchedule = function (parser) {
var getSchedule = function (parser) {
var frequency = getSetting('newsletterFrequency', defaultFrequency);
var recur = parser.recur();
var schedule;
switch (frequency) {
case 1: // every day
// sched = {schedules: [{dw: [1,2,3,4,5,6,0]}]};
return parser.recur().on(1,2,3,4,5,6,0).dayOfWeek();
schedule = recur.on(1,2,3,4,5,6,0).dayOfWeek();
case 2: // Mondays, Wednesdays, Fridays
// sched = {schedules: [{dw: [2,4,6]}]};
return parser.recur().on(2,4,6).dayOfWeek();
schedule = recur.on(2,4,6).dayOfWeek();
case 3: // Mondays, Thursdays
// sched = {schedules: [{dw: [2,5]}]};
return parser.recur().on(2,5).dayOfWeek();
schedule = recur.on(2,5).dayOfWeek();
case 7: // Once a week (Mondays)
// sched = {schedules: [{dw: [2]}]};
return parser.recur().on(2).dayOfWeek();
schedule = recur.on(2).dayOfWeek();
default: // Once a week (Mondays)
return parser.recur().on(2).dayOfWeek();
schedule = recur.on(2).dayOfWeek();
}
return schedule.on(getSetting('newsletterTime', defaultTime)).time();
}
Meteor.methods({
@ -41,11 +43,6 @@ Meteor.methods({
}
});
resetNewsletterJob = function () {
SyncedCron.stop();
addJob();
}
var addJob = function () {
SyncedCron.add({
name: 'scheduleNewsletter',

View file

@ -5,8 +5,7 @@ Package.describe({
});
Npm.depends({
"html-to-text": "0.1.0",
"later": "1.1.6"
"html-to-text": "0.1.0"
});
Package.onUse(function (api) {