From fc73dc5bbcbbd203efc4f10ecb4bd1a66e0d9efb Mon Sep 17 00:00:00 2001 From: Angelo Gallarello Date: Fri, 14 Sep 2018 16:49:06 +0200 Subject: Refactoring rules description --- client/components/rules/actions/boardActions.js | 5 +- client/components/rules/actions/cardActions.js | 1 - client/components/rules/ruleDetails.jade | 5 +- client/components/rules/ruleDetails.js | 17 +++- client/components/rules/rulesList.jade | 2 +- client/components/rules/rulesMain.jade | 4 +- client/components/rules/rulesMain.js | 2 + .../components/rules/triggers/boardTriggers.jade | 4 +- client/components/rules/triggers/boardTriggers.js | 25 +++-- client/components/rules/triggers/cardTriggers.jade | 2 +- client/lib/utils.js | 51 +++++++--- i18n/en.i18n.json | 26 +++++- models/actions.js | 103 +++++++++++++++++++-- models/triggers.js | 88 ++++++++++++++---- server/publications/rules.js | 4 + 15 files changed, 270 insertions(+), 69 deletions(-) diff --git a/client/components/rules/actions/boardActions.js b/client/components/rules/actions/boardActions.js index 2b6fed57..d1593a5b 100644 --- a/client/components/rules/actions/boardActions.js +++ b/client/components/rules/actions/boardActions.js @@ -17,7 +17,6 @@ BlazeComponent.extendComponent({ if(actionSelected == "top"){ const triggerId = Triggers.insert(trigger); const actionId = Actions.insert({actionType: "moveCardToTop","listTitle":listTitle,"boardId":boardId}); - console.log("Action inserted"); Rules.insert({title: ruleName, triggerId: triggerId, actionId: actionId,"boardId":boardId}); } if(actionSelected == "bottom"){ @@ -49,12 +48,12 @@ BlazeComponent.extendComponent({ const actionSelected = this.find('#arch-action').value; if(actionSelected == "archive"){ const triggerId = Triggers.insert(trigger); - const actionId = Actions.insert({actionType: "archive"}); + const actionId = Actions.insert({actionType: "archive","boardId":boardId}); Rules.insert({title: ruleName, triggerId: triggerId, actionId: actionId,"boardId":boardId}); } if(actionSelected == "unarchive"){ const triggerId = Triggers.insert(trigger); - const actionId = Actions.insert({actionType: "unarchive"}); + const actionId = Actions.insert({actionType: "unarchive","boardId":boardId}); Rules.insert({title: ruleName, triggerId: triggerId, actionId: actionId,"boardId":boardId}); } }, diff --git a/client/components/rules/actions/cardActions.js b/client/components/rules/actions/cardActions.js index 571020a8..3f4b4442 100644 --- a/client/components/rules/actions/cardActions.js +++ b/client/components/rules/actions/cardActions.js @@ -5,7 +5,6 @@ BlazeComponent.extendComponent({ labels(){ const labels = Boards.findOne(Session.get('currentBoard')).labels; - console.log(labels); for(let i = 0;i 0){ + finalString += element.find("select option:selected").text(); + }else if(element.find("input").length > 0){ + finalString += element.find("input").val(); + } + // Add space + if(i != length - 1){ + finalString += " "; + } + } + return finalString.toLowerCase(); + }, }; // A simple tracker dependency that we invalidate every time the window is diff --git a/i18n/en.i18n.json b/i18n/en.i18n.json index 7c93ec60..be11d0e1 100644 --- a/i18n/en.i18n.json +++ b/i18n/en.i18n.json @@ -575,7 +575,31 @@ "r-send-email": "Send an email", "r-to": "to", "r-subject": "subject", - "r-rule-details": "Rule details" + "r-rule-details": "Rule details", + "r-d-move-to-top-gen": "Move card to top of its list", + "r-d-move-to-top-spec": "Move card to top of list", + "r-d-move-to-bottom-gen": "Move card to bottom of its list", + "r-d-move-to-bottom-spec": "Move card to bottom of list", + "r-d-send-email": "Send email", + "r-d-send-email-to": "to", + "r-d-send-email-subject": "subject", + "r-d-send-email-message": "message", + "r-d-archive": "Archive the card", + "r-d-unarchive": "Unarchive the card", + "r-d-add-label": "Add label", + "r-d-remove-label": "Remove label", + "r-d-add-member": "Add member", + "r-d-remove-member": "Remove member", + "r-d-remove-all-member": "Remove all member", + "r-d-check-all": "Check all item of list", + "r-d-uncheck-all": "Uncheck all item of list", + "r-d-check-one": "Check item", + "r-d-uncheck-one": "Uncheck item", + "r-d-check-of-list": "of checklist", + "r-d-add-checklist": "Add checklist", + "r-d-remove-checklist": "Remove checklist" + + diff --git a/models/actions.js b/models/actions.js index da9b30fb..fd1d03e0 100644 --- a/models/actions.js +++ b/models/actions.js @@ -2,15 +2,100 @@ Actions = new Mongo.Collection('actions'); Actions.allow({ - insert(userId, doc) { - return allowIsBoardAdmin(userId, Boards.findOne(doc.boardId)); - }, - update(userId, doc) { - return allowIsBoardAdmin(userId, Boards.findOne(doc.boardId)); - }, - remove(userId, doc) { - return allowIsBoardAdmin(userId, Boards.findOne(doc.boardId)); - } + insert(userId, doc) { + return allowIsBoardAdmin(userId, Boards.findOne(doc.boardId)); + }, + update(userId, doc) { + return allowIsBoardAdmin(userId, Boards.findOne(doc.boardId)); + }, + remove(userId, doc) { + return allowIsBoardAdmin(userId, Boards.findOne(doc.boardId)); + } +}); + + +Actions.helpers({ + description() { + if(this.actionType == "moveCardToTop"){ + if(this.listTitle == "*"){ + return TAPi18n.__('r-d-move-to-top-gen'); + }else{ + return TAPi18n.__('r-d-move-to-top-spec') + " " + this.listTitle; + } + } + if(this.actionType == "moveCardToBottom"){ + if(this.listTitle == "*"){ + return TAPi18n.__('r-d-move-to-bottom-gen'); + }else{ + return TAPi18n.__('r-d-move-to-bottom-spec') + " " + this.listTitle; + } + } + if(this.actionType == "sendEmail"){ + const to = " " + TAPi18n.__('r-d-send-email-to') + ": " + this.emailTo + ", "; + const subject = TAPi18n.__('r-d-send-email-subject') + ": " + this.emailSubject + ", "; + const message = TAPi18n.__('r-d-send-email-message') + ": " + this.emailMsg; + const total = TAPi18n.__('r-d-send-email') + to + subject + message; + return total; + } + if(this.actionType == "archive"){ + return TAPi18n.__('r-d-archive'); + } + if(this.actionType == "unarchive"){ + return TAPi18n.__('r-d-unarchive'); + } + if(this.actionType == "addLabel"){ + const board = Boards.findOne(Session.get('currentBoard')); + const label = board.getLabelById(this.labelId); + let name; + if(label.name == "" || label.name == undefined){ + name = label.color.toUpperCase(); + }else{ + name = label.name; + } + + return TAPi18n.__('r-d-add-label') + ": "+name; + } + if(this.actionType == "removeLabel"){ + const board = Boards.findOne(Session.get('currentBoard')); + const label = board.getLabelById(this.labelId); + let name; + if(label.name == "" || label.name == undefined){ + name = label.color.toUpperCase(); + }else{ + name = label.name; + } + return TAPi18n.__('r-d-remove-label') + ": " + name; + } + if(this.actionType == "addMember"){ + return TAPi18n.__('r-d-add-member') + ": " + this.memberName; + } + if(this.actionType == "removeMember"){ + if(this.memberName == "*"){ + return TAPi18n.__('r-d-remove-all-member'); + } + return TAPi18n.__('r-d-remove-member') + ": "+ this.memberName; + } + if(this.actionType == "checkAll"){ + return TAPi18n.__('r-d-check-all') + ": " + this.checklistName; + } + if(this.actionType == "uncheckAll"){ + return TAPi18n.__('r-d-uncheck-all') + ": "+ this.checklistName; + } + if(this.actionType == "checkItem"){ + return TAPi18n.__('r-d-check-one') + ": "+ this.checkItemName + " " + TAPi18n.__('r-d-check-of-list') + ": " +this.checklistName; + } + if(this.actionType == "uncheckItem"){ + return TAPi18n.__('r-d-check-one') + ": "+ this.checkItemName + " " + TAPi18n.__('r-d-check-of-list') + ": " +this.checklistName; + } + if(this.actionType == "addChecklist"){ + return TAPi18n.__('r-d-add-checklist') + ": "+ this.checklistName; + } + if(this.actionType == "removeChecklist"){ + return TAPi18n.__('r-d-remove-checklist') + ": "+ this.checklistName; + } + + return "Ops not trigger description"; + } }); diff --git a/models/triggers.js b/models/triggers.js index a1437ea6..c5ed849e 100644 --- a/models/triggers.js +++ b/models/triggers.js @@ -24,28 +24,80 @@ Triggers.allow({ Triggers.helpers({ - getRule(){ - return Rules.findOne({triggerId:this._id}); - }, + description(){ + if(this.activityType == "createCard"){ + if(this.listName == "*"){ + return TAPi18n.__('r-when-a-card-is') + " " + TAPi18n.__('r-added-to').toLowerCase() + " " + TAPi18n.__('r-the-board'); + }else{ + return TAPi18n.__('r-when-a-card-is') + " " + TAPi18n.__('r-added-to').toLowerCase() + " " + TAPi18n.__('r-list') + " " +this.listName; + } + } + if(this.activityType == "removeCard"){ + if(this.listName == "*"){ + return TAPi18n.__('r-when-a-card-is') + " " + TAPi18n.__('r-removed-from') + " " + TAPi18n.__('r-the-board'); + }else{ + return TAPi18n.__('r-when-a-card-is') + " " + TAPi18n.__('r-removed-from') + " " + TAPi18n.__('r-list') + " " +this.listName; + } + } + if(this.activityType == "moveCard"){ + if(this.listName = "*"){ + return TAPi18n.__('r-when-a-card-is') + " " + TAPi18n.__('r-moved-from') + " " + this.oldListName; + }else{ + return TAPi18n.__('r-when-a-card-is') + " " + TAPi18n.__('r-moved-to') + " " + this.listName; + } + + } + if(this.activityType = "archivedCard"){ + return TAPi18n.__('r-when-a-card-is') + " " + TAPi18n.__('r-archived'); + } + if(this.activityType = "restoredCard"){ + return TAPi18n.__('r-when-a-card-is') + " " + TAPi18n.__('r-unarchived'); + } + if(this.activityType = "addedLabel"){ + if(this.labelId == "*"){ + return TAPi18n.__('r-when-a-label-is') + " " + TAPi18n.__('r-added-to') + " " + TAPi18n.__('r-a-card'); + }else{ + const board = Boards.findOne(Session.get('currentBoard')); + const label = board.getLabelById(this.labelId); + let name; + if(label.name == "" || label.name == undefined){ + name = label.color.toUpperCase(); + }else{ + name = label.name; + } + } + } + if(this.activityType = "restoredCard"){ + return TAPi18n.__('r-when-a-card-is') + " " + TAPi18n.__('r-unarchived'); + } - fromList() { - return Lists.findOne(this.fromId); - }, - toList() { - return Lists.findOne(this.toId); - }, - findList(title) { - return Lists.findOne({title:title}); - }, + return "No description found"; +}, + +getRule(){ + return Rules.findOne({triggerId:this._id}); +}, + +fromList() { + return Lists.findOne(this.fromId); +}, + +toList() { + return Lists.findOne(this.toId); +}, + +findList(title) { + return Lists.findOne({title:title}); +}, - labels() { - const boardLabels = this.board().labels; - const cardLabels = _.filter(boardLabels, (label) => { - return _.contains(this.labelIds, label._id); - }); - return cardLabels; +labels() { + const boardLabels = this.board().labels; + const cardLabels = _.filter(boardLabels, (label) => { + return _.contains(this.labelIds, label._id); + }); + return cardLabels; }}); diff --git a/server/publications/rules.js b/server/publications/rules.js index ae4b898e..7aeb66bf 100644 --- a/server/publications/rules.js +++ b/server/publications/rules.js @@ -12,3 +12,7 @@ Meteor.publish('allRules', () => { Meteor.publish('allTriggers', () => { return Triggers.find({}); }); + +Meteor.publish('allActions', () => { + return Actions.find({}); +}); -- cgit v1.2.3-1-g7c22