From a34c3b70b226d731c0b731e56479b6ebfb5880af Mon Sep 17 00:00:00 2001 From: John Pinkerton Date: Tue, 23 Jun 2015 22:40:43 -0400 Subject: [PATCH] Add option for each day of week for newsletter. Resolves #1034 --- .../telescope-newsletter/lib/newsletter.js | 25 +++++++++++++---- .../telescope-newsletter/lib/server/cron.js | 28 +++++-------------- 2 files changed, 26 insertions(+), 27 deletions(-) diff --git a/packages/telescope-newsletter/lib/newsletter.js b/packages/telescope-newsletter/lib/newsletter.js index bef4be772..30429da46 100644 --- a/packages/telescope-newsletter/lib/newsletter.js +++ b/packages/telescope-newsletter/lib/newsletter.js @@ -131,27 +131,40 @@ Settings.addField([ { fieldName: 'newsletterFrequency', fieldSchema: { - type: Number, + type: [Number], optional: true, autoform: { group: 'newsletter', - instructions: 'Defaults to once a week. Changes require restarting your app to take effect.', + instructions: 'Defaults to once a week on Monday. Changes require restarting your app to take effect.', + noselect: true, options: [ { value: 1, - label: 'Every Day' + label: 'Sunday' }, { value: 2, - label: 'Mondays, Wednesdays, Fridays' + label: 'Monday' }, { value: 3, - label: 'Mondays & Thursdays' + label: 'Tuesday' + }, + { + value: 4, + label: 'Wednesday' + }, + { + value: 5, + label: 'Thursday' + }, + { + value: 6, + label: 'Friday' }, { value: 7, - label: 'Once a week (Mondays)' + label: 'Saturday' } ] } diff --git a/packages/telescope-newsletter/lib/server/cron.js b/packages/telescope-newsletter/lib/server/cron.js index 4c60b8d2b..be91e5e14 100644 --- a/packages/telescope-newsletter/lib/server/cron.js +++ b/packages/telescope-newsletter/lib/server/cron.js @@ -12,30 +12,16 @@ var getSchedule = function (parser) { var frequency = Settings.get('newsletterFrequency', defaultFrequency); var recur = parser.recur(); var schedule; - switch (frequency) { - case 1: // every day - // sched = {schedules: [{dw: [1,2,3,4,5,6,0]}]}; - schedule = recur.on(1,2,3,4,5,6,0).dayOfWeek(); - break; - case 2: // Mondays, Wednesdays, Fridays - // sched = {schedules: [{dw: [2,4,6]}]}; - schedule = recur.on(2,4,6).dayOfWeek(); - break; - case 3: // Mondays, Thursdays - // sched = {schedules: [{dw: [2,5]}]}; - schedule = recur.on(2,5).dayOfWeek(); - break; - - case 7: // Once a week (Mondays) - // sched = {schedules: [{dw: [2]}]}; - schedule = recur.on(2).dayOfWeek(); - break; - - default: // Once a week (Mondays) - schedule = recur.on(2).dayOfWeek(); + // Default is once a week (Mondays) + if (!!frequency) { + schedule = recur.on(frequency).dayOfWeek(); } + else { + schedule = recur.on(2).dayOfWeek(); + } + return schedule.on(Settings.get('newsletterTime', defaultTime)).time(); };