summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--client/components/rules/actions/boardActions.jade11
-rw-r--r--client/components/rules/actions/boardActions.js21
-rw-r--r--client/components/rules/actions/checklistActions.jade13
-rw-r--r--client/components/rules/actions/checklistActions.js23
-rw-r--r--i18n/en.i18n.json4
-rw-r--r--server/rulesHelper.js13
6 files changed, 84 insertions, 1 deletions
diff --git a/client/components/rules/actions/boardActions.jade b/client/components/rules/actions/boardActions.jade
index 768d77cf..ab7d77a8 100644
--- a/client/components/rules/actions/boardActions.jade
+++ b/client/components/rules/actions/boardActions.jade
@@ -36,7 +36,16 @@ template(name="boardActions")
div.trigger-text
| {{_'r-card'}}
div.trigger-button.js-add-arch-action.js-goto-rules
- i.fa.fa-plus
+ i.fa.fa-plus
+
+ div.trigger-item
+ div.trigger-content
+ div.trigger-text
+ | {{_'r-add-swimlane'}}
+ div.trigger-dropdown
+ input(id="swimlane-name",type=text,placeholder="{{_'r-name'}}")
+ div.trigger-button.js-add-swimlane-action.js-goto-rules
+ i.fa.fa-plus
diff --git a/client/components/rules/actions/boardActions.js b/client/components/rules/actions/boardActions.js
index 95771fce..34f7c4b4 100644
--- a/client/components/rules/actions/boardActions.js
+++ b/client/components/rules/actions/boardActions.js
@@ -5,6 +5,27 @@ BlazeComponent.extendComponent({
events() {
return [{
+ 'click .js-add-swimlane-action' (event) {
+ const ruleName = this.data().ruleName.get();
+ const trigger = this.data().triggerVar.get();
+ const swimlaneName = this.find('#swimlane-name').value;
+ const boardId = Session.get('currentBoard');
+ const desc = Utils.getTriggerActionDesc(event, this);
+ const triggerId = Triggers.insert(trigger);
+ const actionId = Actions.insert({
+ actionType: 'addSwimlane',
+ swimlaneName,
+ boardId,
+ desc,
+ });
+ Rules.insert({
+ title: ruleName,
+ triggerId,
+ actionId,
+ boardId,
+ });
+
+ },
'click .js-add-spec-move-action' (event) {
const ruleName = this.data().ruleName.get();
const trigger = this.data().triggerVar.get();
diff --git a/client/components/rules/actions/checklistActions.jade b/client/components/rules/actions/checklistActions.jade
index 8414a1a5..3542c5c9 100644
--- a/client/components/rules/actions/checklistActions.jade
+++ b/client/components/rules/actions/checklistActions.jade
@@ -43,6 +43,19 @@ template(name="checklistActions")
div.trigger-button.js-add-check-item-action.js-goto-rules
i.fa.fa-plus
+ div.trigger-item
+ div.trigger-content
+ div.trigger-text
+ | {{{_'r-add-checklist'}}}
+ div.trigger-dropdown
+ input(id="checklist-name-3",type=text,placeholder="{{{_'r-name'}}}")
+ div.trigger-text
+ | {{{_'r-with-items'}}}
+ div.trigger-dropdown
+ input(id="checklist-items",type=text,placeholder="{{{_'r-items-list'}}}")
+ div.trigger-button.js-add-checklist-items-action.js-goto-rules
+ i.fa.fa-plus
+
diff --git a/client/components/rules/actions/checklistActions.js b/client/components/rules/actions/checklistActions.js
index 4b70f959..59141c39 100644
--- a/client/components/rules/actions/checklistActions.js
+++ b/client/components/rules/actions/checklistActions.js
@@ -4,6 +4,29 @@ BlazeComponent.extendComponent({
},
events() {
return [{
+ 'click .js-add-checklist-items-action' (event) {
+ const ruleName = this.data().ruleName.get();
+ const trigger = this.data().triggerVar.get();
+ const checklistName = this.find('#checklist-name-3').value;
+ const checklistItems = this.find('#checklist-items').value;
+ const boardId = Session.get('currentBoard');
+ const desc = Utils.getTriggerActionDesc(event, this);
+ const triggerId = Triggers.insert(trigger);
+ const actionId = Actions.insert({
+ actionType: 'addChecklistWithItems',
+ checklistName,
+ checklistItems,
+ boardId,
+ desc,
+ });
+ Rules.insert({
+ title: ruleName,
+ triggerId,
+ actionId,
+ boardId,
+ });
+
+ },
'click .js-add-checklist-action' (event) {
const ruleName = this.data().ruleName.get();
const trigger = this.data().triggerVar.get();
diff --git a/i18n/en.i18n.json b/i18n/en.i18n.json
index 903d1fe5..2bffa1a5 100644
--- a/i18n/en.i18n.json
+++ b/i18n/en.i18n.json
@@ -615,6 +615,10 @@
"r-d-add-checklist": "Add checklist",
"r-d-remove-checklist": "Remove checklist",
"r-by": "by",
+ "r-add-checklist": "Add checklist",
+ "r-with-items": "with items",
+ "r-items-list": "item1,item2,item3",
+ "r-add-swimlane": "Add swimlane",
"r-swimlane": "in swimlane",
"r-swimlane-name": "swimlane name",
"r-user-name": "username",
diff --git a/server/rulesHelper.js b/server/rulesHelper.js
index 81e6b74f..e06ed4aa 100644
--- a/server/rulesHelper.js
+++ b/server/rulesHelper.js
@@ -132,6 +132,19 @@ RulesHelper = {
if(action.actionType === 'removeChecklist'){
Checklists.remove({'title':action.checklistName, 'cardId':card._id, 'sort':0});
}
+ if(action.actionType === 'addSwimlane'){
+ Swimlanes.insert({
+ title: action.swimlaneName,
+ boardId
+ });
+ }
+ if(action.actionType === 'addChecklistWithItems'){
+ const checkListId = Checklists.insert({'title':action.checklistName, 'cardId':card._id, 'sort':0});
+ const itemsArray = action.checklistItems.split(',');
+ for(let i = 0;i <itemsArray.length;i++){
+ ChecklistItems.insert({title:itemsArray[i],checklistId:checkListId,cardId:card._id,'sort':0});
+ }
+ }
},