diff options
author | Christoph Jahn <cj@road42.de> | 2019-06-21 07:24:21 +0200 |
---|---|---|
committer | Christoph Jahn <cj@road42.de> | 2019-06-21 07:24:21 +0200 |
commit | a9fc74a9b4b711813d5219ed7ffda8cd20f45fb6 (patch) | |
tree | 499a9308277668b75ac2443883f4edf221583e10 /server | |
parent | 02de9164f014e149d3536a7c3cae88beda358318 (diff) | |
download | wekan-a9fc74a9b4b711813d5219ed7ffda8cd20f45fb6.tar.gz wekan-a9fc74a9b4b711813d5219ed7ffda8cd20f45fb6.tar.bz2 wekan-a9fc74a9b4b711813d5219ed7ffda8cd20f45fb6.zip |
Adds rule feature: cardAction - SetDate #2504
Diffstat (limited to 'server')
-rw-r--r-- | server/rulesHelper.js | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/server/rulesHelper.js b/server/rulesHelper.js index 2188d931..7eb65f1a 100644 --- a/server/rulesHelper.js +++ b/server/rulesHelper.js @@ -83,6 +83,89 @@ RulesHelper = { return; } } + + if(action.actionType === 'setDate') { + try { + const currentDateTime = new Date(); + switch (action.dateField){ + case 'startAt': { + const resStart = card.getStart(); + if (typeof resStart === 'undefined') { + card.setStart(currentDateTime); + } + break; + } + case 'endAt': { + const resEnd = card.getEnd(); + if (typeof resEnd === 'undefined') { + card.setEnd(currentDateTime); + } + break; + } + case 'dueAt': { + const resDue = card.getDue(); + if (typeof resDue === 'undefined') { + card.setDue(currentDateTime); + } + break; + } + case 'receivedAt': { + const resReceived = card.getReceived(); + if (typeof resReceived === 'undefined') { + card.setReceived(currentDateTime); + } + break; + } + } + } catch (e) { + // eslint-disable-next-line no-console + console.error(e); + return; + } + } + + if(action.actionType === 'updateDate'){ + const currentDateTimeUpdate = new Date(); + switch (action.dateField){ + case 'startAt': { + card.setStart(currentDateTimeUpdate); + break; + } + case 'endAt': { + card.setEnd(currentDateTimeUpdate); + break; + } + case 'dueAt': { + card.setDue(currentDateTimeUpdate); + break; + } + case 'receivedAt': { + card.setReceived(currentDateTimeUpdate); + break; + } + } + } + + if(action.actionType === 'removeDate'){ + switch (action.dateField){ + case 'startAt': { + card.unsetStart(); + break; + } + case 'endAt': { + card.unsetEnd(); + break; + } + case 'dueAt': { + card.unsetDue(); + break; + } + case 'receivedAt': { + card.unsetReceived(); + break; + } + } + } if(action.actionType === 'archive'){ card.archive(); } |