summaryrefslogtreecommitdiffstats
path: root/server/rulesHelper.js
diff options
context:
space:
mode:
authorChristoph Jahn <cj@road42.de>2019-06-21 07:24:21 +0200
committerChristoph Jahn <cj@road42.de>2019-06-21 07:24:21 +0200
commita9fc74a9b4b711813d5219ed7ffda8cd20f45fb6 (patch)
tree499a9308277668b75ac2443883f4edf221583e10 /server/rulesHelper.js
parent02de9164f014e149d3536a7c3cae88beda358318 (diff)
downloadwekan-a9fc74a9b4b711813d5219ed7ffda8cd20f45fb6.tar.gz
wekan-a9fc74a9b4b711813d5219ed7ffda8cd20f45fb6.tar.bz2
wekan-a9fc74a9b4b711813d5219ed7ffda8cd20f45fb6.zip
Adds rule feature: cardAction - SetDate #2504
Diffstat (limited to 'server/rulesHelper.js')
-rw-r--r--server/rulesHelper.js83
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();
}