diff options
author | Lauri Ojansivu <x@xet7.org> | 2018-09-16 01:50:36 +0300 |
---|---|---|
committer | Lauri Ojansivu <x@xet7.org> | 2018-09-16 01:50:36 +0300 |
commit | df84a2be9adb2eeee25141588a80d4523d38675d (patch) | |
tree | d7defe25d43e41a76d9d11461cbc539ad01598c2 /server/rulesHelper.js | |
parent | b3a752ef34cb1cd324f7e2b55bebef81fb2281c3 (diff) | |
download | wekan-df84a2be9adb2eeee25141588a80d4523d38675d.tar.gz wekan-df84a2be9adb2eeee25141588a80d4523d38675d.tar.bz2 wekan-df84a2be9adb2eeee25141588a80d4523d38675d.zip |
Fix lint errors.
Diffstat (limited to 'server/rulesHelper.js')
-rw-r--r-- | server/rulesHelper.js | 256 |
1 files changed, 128 insertions, 128 deletions
diff --git a/server/rulesHelper.js b/server/rulesHelper.js index d56b70aa..e7e19b96 100644 --- a/server/rulesHelper.js +++ b/server/rulesHelper.js @@ -1,131 +1,131 @@ RulesHelper = { - executeRules(activity){ - const matchingRules = this.findMatchingRules(activity); - for(let i = 0;i< matchingRules.length;i++){ - const action = matchingRules[i].getAction(); - this.performAction(activity,action); - } - }, - findMatchingRules(activity){ - const activityType = activity.activityType; - if(TriggersDef[activityType] == undefined){ - return []; - } - const matchingFields = TriggersDef[activityType].matchingFields; - const matchingMap = this.buildMatchingFieldsMap(activity,matchingFields); - let matchingTriggers = Triggers.find(matchingMap); - let matchingRules = []; - matchingTriggers.forEach(function(trigger){ - matchingRules.push(trigger.getRule()); - }); - return matchingRules; - }, - buildMatchingFieldsMap(activity, matchingFields){ - let matchingMap = {"activityType":activity.activityType}; - for(let i = 0;i< matchingFields.length;i++){ - // Creating a matching map with the actual field of the activity - // and with the wildcard (for example: trigger when a card is added - // in any [*] board - matchingMap[matchingFields[i]] = { $in: [activity[matchingFields[i]],"*"]}; - } - return matchingMap; - }, - performAction(activity,action){ - const card = Cards.findOne({_id:activity.cardId}); - const boardId = activity.boardId; - if(action.actionType == "moveCardToTop"){ - let listId; - let list; - if(activity.listTitle == "*"){ - listId = card.swimlaneId; - list = card.list(); - }else{ - list = Lists.findOne({title: action.listTitle, boardId:boardId });; - listId = list._id; - } - const minOrder = _.min(list.cards(card.swimlaneId).map((c) => c.sort)); - card.move(card.swimlaneId, listId, minOrder - 1); - } - if(action.actionType == "moveCardToBottom"){ - let listId; - let list; - if(activity.listTitle == "*"){ - listId = card.swimlaneId; - list = card.list(); - }else{ - list = Lists.findOne({title: action.listTitle, boardId:boardId}); - listId = list._id; - } - const maxOrder = _.max(list.cards(card.swimlaneId).map((c) => c.sort)); - card.move(card.swimlaneId, listId, maxOrder + 1); - } - if(action.actionType == "sendEmail"){ - const emailTo = action.emailTo; - const emailMsg = action.emailMsg; - const emailSubject = action.emailSubject; - try { - Email.send({ - to: to, - from: Accounts.emailTemplates.from, - subject: subject, - text, - }); - } catch (e) { - return; - } - } - if(action.actionType == "archive"){ - card.archive(); - } - if(action.actionType == "unarchive"){ - card.restore(); - } - if(action.actionType == "addLabel"){ - card.addLabel(action.labelId); - } - if(action.actionType == "removeLabel"){ - card.removeLabel(action.labelId); - } - if(action.actionType == "addMember"){ - const memberId = Users.findOne({username:action.memberName})._id; - card.assignMember(memberId); - } - if(action.actionType == "removeMember"){ - if(action.memberName == "*"){ - const members = card.members; - for(let i = 0;i< members.length;i++){ - card.unassignMember(members[i]); - } - }else{ - const memberId = Users.findOne({username:action.memberName})._id; - card.unassignMember(memberId); - } - } - if(action.actionType == "checkAll"){ - const checkList = Checklists.findOne({"title":action.checklistName,"cardId":card._id}); - checkList.checkAllItems(); - } - if(action.actionType == "uncheckAll"){ - const checkList = Checklists.findOne({"title":action.checklistName,"cardId":card._id}); - checkList.uncheckAllItems(); - } - if(action.actionType == "checkItem"){ - const checkList = Checklists.findOne({"title":action.checklistName,"cardId":card._id}); - const checkItem = ChecklistItems.findOne({"title":action.checkItemName,"checkListId":checkList._id}) - checkItem.check(); - } - if(action.actionType == "uncheckItem"){ - const checkList = Checklists.findOne({"title":action.checklistName,"cardId":card._id}); - const checkItem = ChecklistItems.findOne({"title":action.checkItemName,"checkListId":checkList._id}) - checkItem.uncheck(); - } - if(action.actionType == "addChecklist"){ - Checklists.insert({"title":action.checklistName,"cardId":card._id,"sort":0}); - } - if(action.actionType == "removeChecklist"){ - Checklists.remove({"title":action.checklistName,"cardId":card._id,"sort":0}); - } + executeRules(activity){ + const matchingRules = this.findMatchingRules(activity); + for(let i = 0; i< matchingRules.length; i++){ + const action = matchingRules[i].getAction(); + this.performAction(activity, action); + } + }, + findMatchingRules(activity){ + const activityType = activity.activityType; + if(TriggersDef[activityType] === undefined){ + return []; + } + const matchingFields = TriggersDef[activityType].matchingFields; + const matchingMap = this.buildMatchingFieldsMap(activity, matchingFields); + const matchingTriggers = Triggers.find(matchingMap); + const matchingRules = []; + matchingTriggers.forEach(function(trigger){ + matchingRules.push(trigger.getRule()); + }); + return matchingRules; + }, + buildMatchingFieldsMap(activity, matchingFields){ + const matchingMap = {'activityType':activity.activityType}; + for(let i = 0; i< matchingFields.length; i++){ + // Creating a matching map with the actual field of the activity + // and with the wildcard (for example: trigger when a card is added + // in any [*] board + matchingMap[matchingFields[i]] = { $in: [activity[matchingFields[i]], '*']}; + } + return matchingMap; + }, + performAction(activity, action){ + const card = Cards.findOne({_id:activity.cardId}); + const boardId = activity.boardId; + if(action.actionType === 'moveCardToTop'){ + let listId; + let list; + if(activity.listTitle === '*'){ + listId = card.swimlaneId; + list = card.list(); + }else{ + list = Lists.findOne({title: action.listTitle, boardId }); + listId = list._id; + } + const minOrder = _.min(list.cards(card.swimlaneId).map((c) => c.sort)); + card.move(card.swimlaneId, listId, minOrder - 1); + } + if(action.actionType === 'moveCardToBottom'){ + let listId; + let list; + if(activity.listTitle === '*'){ + listId = card.swimlaneId; + list = card.list(); + }else{ + list = Lists.findOne({title: action.listTitle, boardId}); + listId = list._id; + } + const maxOrder = _.max(list.cards(card.swimlaneId).map((c) => c.sort)); + card.move(card.swimlaneId, listId, maxOrder + 1); + } + if(action.actionType === 'sendEmail'){ + const emailTo = action.emailTo; + const emailMsg = action.emailMsg; + const emailSubject = action.emailSubject; + try { + Email.send({ + to, + from: Accounts.emailTemplates.from, + subject, + text, + }); + } catch (e) { + return; + } + } + if(action.actionType === 'archive'){ + card.archive(); + } + if(action.actionType === 'unarchive'){ + card.restore(); + } + if(action.actionType === 'addLabel'){ + card.addLabel(action.labelId); + } + if(action.actionType === 'removeLabel'){ + card.removeLabel(action.labelId); + } + if(action.actionType === 'addMember'){ + const memberId = Users.findOne({username:action.memberName})._id; + card.assignMember(memberId); + } + if(action.actionType === 'removeMember'){ + if(action.memberName === '*'){ + const members = card.members; + for(let i = 0; i< members.length; i++){ + card.unassignMember(members[i]); + } + }else{ + const memberId = Users.findOne({username:action.memberName})._id; + card.unassignMember(memberId); + } + } + if(action.actionType === 'checkAll'){ + const checkList = Checklists.findOne({'title':action.checklistName, 'cardId':card._id}); + checkList.checkAllItems(); + } + if(action.actionType === 'uncheckAll'){ + const checkList = Checklists.findOne({'title':action.checklistName, 'cardId':card._id}); + checkList.uncheckAllItems(); + } + if(action.actionType === 'checkItem'){ + const checkList = Checklists.findOne({'title':action.checklistName, 'cardId':card._id}); + const checkItem = ChecklistItems.findOne({'title':action.checkItemName, 'checkListId':checkList._id}); + checkItem.check(); + } + if(action.actionType === 'uncheckItem'){ + const checkList = Checklists.findOne({'title':action.checklistName, 'cardId':card._id}); + const checkItem = ChecklistItems.findOne({'title':action.checkItemName, 'checkListId':checkList._id}); + checkItem.uncheck(); + } + if(action.actionType === 'addChecklist'){ + Checklists.insert({'title':action.checklistName, 'cardId':card._id, 'sort':0}); + } + if(action.actionType === 'removeChecklist'){ + Checklists.remove({'title':action.checklistName, 'cardId':card._id, 'sort':0}); + } - }, + }, -}
\ No newline at end of file +}; |