summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--client/components/rules/rulesMain.jade8
-rw-r--r--client/components/rules/rulesMain.js34
-rw-r--r--client/components/rules/triggers/boardTriggers.jade54
-rw-r--r--client/components/rules/triggers/boardTriggers.js51
-rw-r--r--i18n/en.i18n.json5
-rw-r--r--models/cards.js1
-rw-r--r--server/triggersDef.js2
7 files changed, 88 insertions, 67 deletions
diff --git a/client/components/rules/rulesMain.jade b/client/components/rules/rulesMain.jade
index d01d9f77..dc33ee4e 100644
--- a/client/components/rules/rulesMain.jade
+++ b/client/components/rules/rulesMain.jade
@@ -6,10 +6,4 @@ template(name="rulesMain")
if($eq rulesCurrentTab.get 'action')
+rulesActions(ruleName=ruleName triggerVar=triggerVar)
if($eq rulesCurrentTab.get 'ruleDetails')
- +ruleDetails(ruleId=ruleId)
-
-template(name="boardCardTitlePopup")
- form
- label
- | Card Title Filter
- input.js-board-name(type="text" value=title autofocus) \ No newline at end of file
+ +ruleDetails(ruleId=ruleId) \ No newline at end of file
diff --git a/client/components/rules/rulesMain.js b/client/components/rules/rulesMain.js
index 373c7502..42116790 100644
--- a/client/components/rules/rulesMain.js
+++ b/client/components/rules/rulesMain.js
@@ -1,4 +1,4 @@
-BlazeComponent.extendComponent({
+let rulesMainComponent = BlazeComponent.extendComponent({
onCreated() {
this.rulesCurrentTab = new ReactiveVar('rulesList');
this.ruleName = new ReactiveVar('');
@@ -9,7 +9,13 @@ BlazeComponent.extendComponent({
setTrigger() {
this.rulesCurrentTab.set('trigger');
},
-
+ sanitizeObject(obj){
+ Object.keys(obj).forEach(key =>{
+ if(obj[key] == "" || obj[key] == undefined){
+ obj[key] = "*";
+ }}
+ );
+ },
setRulesList() {
this.rulesCurrentTab.set('rulesList');
},
@@ -31,7 +37,6 @@ BlazeComponent.extendComponent({
Triggers.remove(rule.triggerId);
},
- 'click .js-open-card-title-popup': Popup.open('boardCardTitle'),
'click .js-goto-trigger' (event) {
event.preventDefault();
const ruleTitle = this.find('#ruleTitle').value;
@@ -46,23 +51,23 @@ BlazeComponent.extendComponent({
// Add user to the trigger
const username = $(event.currentTarget.offsetParent).find(".user-name").val();
let trigger = this.triggerVar.get();
- const user = Users.findOne({"username":username});
- if(user != undefined){
- trigger["userId"] = user._id;
- }else{
- trigger["userId"] = "*";
+ trigger["userId"] = "*";
+ if(username != undefined ){
+ const userFound = Users.findOne({"username":username});
+ if(userFound != undefined){
+ trigger["userId"] = userFound._id;
+ this.triggerVar.set(trigger);
+ }
}
+ // Sanitize trigger
+ trigger = this.triggerVar.get();
+ this.sanitizeObject(trigger)
this.triggerVar.set(trigger);
this.setAction();
},
'click .js-show-user-field' (event) {
event.preventDefault();
- console.log(event);
- console.log(event.currentTarget.offsetParent);
- console.log($(event.currentTarget.offsetParent));
$(event.currentTarget.offsetParent).find(".user-details").removeClass("hide-element");
-
-
},
'click .js-goto-rules' (event) {
event.preventDefault();
@@ -88,3 +93,6 @@ BlazeComponent.extendComponent({
},
}).register('rulesMain');
+
+
+
diff --git a/client/components/rules/triggers/boardTriggers.jade b/client/components/rules/triggers/boardTriggers.jade
index f8767974..dae3351e 100644
--- a/client/components/rules/triggers/boardTriggers.jade
+++ b/client/components/rules/triggers/boardTriggers.jade
@@ -1,29 +1,13 @@
template(name="boardTriggers")
- div.trigger-item
+ div.trigger-item#trigger-two
div.trigger-content
div.trigger-text
- | {{_'r-when-a-card-is'}}
- div.trigger-text
- | {{_'r-added-to'}}
- div.trigger-text
- | {{_'r-the-board'}}
- div.trigger-button.trigger-button-person.js-show-user-field
- i.fa.fa-user
- div.user-details.hide-element
- div.trigger-text
- | {{_'r-by'}}
- div.trigger-dropdown
- input(class="user-name",type=text,placeholder="{{_'r-user-name'}}")
- div.trigger-button.js-add-gen-trigger.js-goto-action
- i.fa.fa-plus
-
- div.trigger-item
- div.trigger-content
- div.trigger-text
- | {{_'r-when-a-card-is'}}
+ | {{_'r-when-a-card'}}
div.trigger-inline-button.js-open-card-title-popup
i.fa.fa-filter
div.trigger-text
+ | {{_'r-is'}}
+ div.trigger-text
| {{_'r-added-to'}}
div.trigger-text
| {{_'r-list'}}
@@ -43,10 +27,14 @@ template(name="boardTriggers")
div.trigger-button.js-add-create-trigger.js-goto-action
i.fa.fa-plus
- div.trigger-item
+ div.trigger-item#trigger-three
div.trigger-content
div.trigger-text
- | {{_'r-when-a-card-is-moved'}}
+ | {{_'r-when-a-card'}}
+ div.trigger-inline-button.js-open-card-title-popup
+ i.fa.fa-filter
+ div.trigger-text
+ | {{_'r-is-moved'}}
div.trigger-button.trigger-button-person.js-show-user-field
i.fa.fa-user
div.user-details.hide-element
@@ -57,10 +45,14 @@ template(name="boardTriggers")
div.trigger-button.js-add-gen-moved-trigger.js-goto-action
i.fa.fa-plus
- div.trigger-item
+ div.trigger-item#trigger-four
div.trigger-content
div.trigger-text
- | {{_'r-when-a-card-is'}}
+ | {{_'r-when-a-card'}}
+ div.trigger-inline-button.js-open-card-title-popup
+ i.fa.fa-filter
+ div.trigger-text
+ | {{_'r-is'}}
div.trigger-dropdown
select(id="move-action")
option(value="moved-to") {{_'r-moved-to'}}
@@ -84,10 +76,14 @@ template(name="boardTriggers")
div.trigger-button.js-add-moved-trigger.js-goto-action
i.fa.fa-plus
- div.trigger-item
+ div.trigger-item#trigger-five
div.trigger-content
div.trigger-text
- | {{_'r-when-a-card-is'}}
+ | {{_'r-when-a-card'}}
+ div.trigger-inline-button.js-open-card-title-popup
+ i.fa.fa-filter
+ div.trigger-text
+ | {{_'r-is'}}
div.trigger-dropdown
select(id="arch-action")
option(value="archived") {{_'r-archived'}}
@@ -102,6 +98,12 @@ template(name="boardTriggers")
div.trigger-button.js-add-arch-trigger.js-goto-action
i.fa.fa-plus
+template(name="boardCardTitlePopup")
+ form
+ label
+ | Card Title Filter
+ input.js-card-filter-name(type="text" value=title autofocus)
+ input.js-card-filter-button.primary.wide(type="submit" value="{{_ 'set-filter'}}")
diff --git a/client/components/rules/triggers/boardTriggers.js b/client/components/rules/triggers/boardTriggers.js
index b822d643..1a7948de 100644
--- a/client/components/rules/triggers/boardTriggers.js
+++ b/client/components/rules/triggers/boardTriggers.js
@@ -1,34 +1,36 @@
BlazeComponent.extendComponent({
onCreated() {
-
+ this.provaVar = new ReactiveVar('');
+ this.currentPopupTriggerId = "def";
+ this.cardTitleFilters = {};
+ },
+ setNameFilter(name){
+ this.cardTitleFilters[this.currentPopupTriggerId] = name;
},
events() {
return [{
- 'click .js-add-gen-trigger' (event) {
- const desc = Utils.getTriggerActionDesc(event, this);
- const datas = this.data();
- const boardId = Session.get('currentBoard');
- datas.triggerVar.set({
- activityType: 'createCard',
- boardId,
- 'listName': '*',
- desc,
- });
-
+ 'click .js-open-card-title-popup'(event){
+ var funct = Popup.open('boardCardTitle');
+ let divId = $(event.currentTarget.parentNode.parentNode).attr("id");
+ console.log("current popup");
+ console.log(this.currentPopupTriggerId);
+ this.currentPopupTriggerId = divId;
+ funct.call(this,event);
},
'click .js-add-create-trigger' (event) {
const desc = Utils.getTriggerActionDesc(event, this);
const datas = this.data();
const listName = this.find('#create-list-name').value;
const swimlaneName = this.find('#create-swimlane-name').value;
- if(swimlaneName == undefined || swimlaneName == ""){
- swimlaneName = "*";
- }
const boardId = Session.get('currentBoard');
+ const divId = $(event.currentTarget.parentNode).attr("id");
+ const cardTitle = this.cardTitleFilters[divId];
+ // move to generic funciont
datas.triggerVar.set({
activityType: 'createCard',
boardId,
+ cardTitle,
swimlaneName,
listName,
desc,
@@ -41,9 +43,6 @@ BlazeComponent.extendComponent({
const actionSelected = this.find('#move-action').value;
const listName = this.find('#move-list-name').value;
const boardId = Session.get('currentBoard');
- if(swimlaneName == undefined || swimlaneName == ""){
- swimlaneName = "*";
- }
if (actionSelected === 'moved-to') {
datas.triggerVar.set({
activityType: 'moveCard',
@@ -71,8 +70,9 @@ BlazeComponent.extendComponent({
const boardId = Session.get('currentBoard');
datas.triggerVar.set({
- activityType: 'moveCard',
+ 'activityType': 'moveCard',
boardId,
+ 'swimlaneName': '*',
'listName':'*',
'oldListName': '*',
desc,
@@ -103,3 +103,16 @@ BlazeComponent.extendComponent({
},
}).register('boardTriggers');
+
+
+
+
+
+Template.boardCardTitlePopup.events({
+ submit(evt, tpl) {
+ const title = tpl.$('.js-card-filter-name').val().trim();
+ Popup.getOpenerComponent().setNameFilter(title);
+ evt.preventDefault();
+ Popup.close();
+ },
+});
diff --git a/i18n/en.i18n.json b/i18n/en.i18n.json
index 1007a650..903d1fe5 100644
--- a/i18n/en.i18n.json
+++ b/i18n/en.i18n.json
@@ -538,11 +538,14 @@
"r-delete-rule": "Delete rule",
"r-new-rule-name": "New rule title",
"r-no-rules": "No rules",
- "r-when-a-card-is": "When a card is",
+ "r-when-a-card": "When a card",
+ "r-is": "is",
+ "r-is-moved": "is moved",
"r-added-to": "Added to",
"r-removed-from": "Removed from",
"r-the-board": "the board",
"r-list": "list",
+ "set-filter":"Set Filter",
"r-moved-to": "Moved to",
"r-moved-from": "Moved from",
"r-archived": "Moved to Archive",
diff --git a/models/cards.js b/models/cards.js
index a7217c5d..7b05e4b5 100644
--- a/models/cards.js
+++ b/models/cards.js
@@ -1238,6 +1238,7 @@ function cardCreation(userId, doc) {
listName: Lists.findOne(doc.listId).title,
listId: doc.listId,
cardId: doc._id,
+ cardTitle:doc.title,
swimlaneName: Swimlanes.findOne(doc.swimlaneId).title,
swimlaneId: doc.swimlaneId,
});
diff --git a/server/triggersDef.js b/server/triggersDef.js
index 0f573ba5..2c8deb07 100644
--- a/server/triggersDef.js
+++ b/server/triggersDef.js
@@ -1,6 +1,6 @@
TriggersDef = {
createCard:{
- matchingFields: ['boardId', 'listName','userId','swimlaneName'],
+ matchingFields: ['boardId', 'listName','userId','swimlaneName','cardTitle'],
},
moveCard:{
matchingFields: ['boardId', 'listName', 'oldListName','userId','swimlaneName'],