From 60162d5c466eba8187c1ccf0df9981e50d0a4c1a Mon Sep 17 00:00:00 2001 From: Jan Oberhauser Date: Thu, 11 Jul 2019 08:00:57 +0200 Subject: [PATCH] :sparkles: Make it possible to use custom cron-expressions and add "Every Hour" option to Cron-Node --- packages/nodes-base/nodes/Cron.node.ts | 42 ++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/packages/nodes-base/nodes/Cron.node.ts b/packages/nodes-base/nodes/Cron.node.ts index b3812a6545..e361929531 100644 --- a/packages/nodes-base/nodes/Cron.node.ts +++ b/packages/nodes-base/nodes/Cron.node.ts @@ -53,6 +53,10 @@ export class Cron implements INodeType { name: 'mode', type: 'options', options: [ + { + name: 'Every Hour', + value: 'everyHour' + }, { name: 'Every Day', value: 'everyDay' @@ -65,6 +69,10 @@ export class Cron implements INodeType { name: 'Every Month', value: 'everyMonth' }, + { + name: 'Custom', + value: 'custom' + }, ], default: 'everyDay', description: 'How often to trigger.', @@ -77,6 +85,14 @@ export class Cron implements INodeType { minValue: 0, maxValue: 23, }, + displayOptions: { + hide: { + mode: [ + 'custom', + 'everyHour', + ], + }, + }, default: 14, description: 'The hour of the day to trigger (24h format).', }, @@ -88,6 +104,13 @@ export class Cron implements INodeType { minValue: 0, maxValue: 59, }, + displayOptions: { + hide: { + mode: [ + 'custom', + ], + }, + }, default: 0, description: 'The minute of the day to trigger.', }, @@ -153,6 +176,20 @@ export class Cron implements INodeType { default: '1', description: 'The weekday to trigger.', }, + { + displayName: 'Cron Expression', + name: 'cronExpression', + type: 'string', + displayOptions: { + show: { + mode: [ + 'custom', + ], + }, + }, + default: '* * * * * *', + description: 'Use custom cron expression. Values and ranges as follows:', + }, ] }, ], @@ -185,6 +222,11 @@ export class Cron implements INodeType { if (triggerTimes.item !== undefined) { for (const item of triggerTimes.item) { cronTime = []; + if (item.mode === 'custom') { + cronTimes.push(item.cronExpression as string); + continue; + } + for (parameterName of parameterOrder) { if (item[parameterName] !== undefined) { // Value is set so use it