Finished triggers improvements

This commit is contained in:
Angelo Gallarello 2019-01-02 14:45:45 +01:00
parent 196fef3a1b
commit 25968a35cc
7 changed files with 88 additions and 67 deletions

View file

@ -6,10 +6,4 @@ template(name="rulesMain")
if($eq rulesCurrentTab.get 'action') if($eq rulesCurrentTab.get 'action')
+rulesActions(ruleName=ruleName triggerVar=triggerVar) +rulesActions(ruleName=ruleName triggerVar=triggerVar)
if($eq rulesCurrentTab.get 'ruleDetails') if($eq rulesCurrentTab.get 'ruleDetails')
+ruleDetails(ruleId=ruleId) +ruleDetails(ruleId=ruleId)
template(name="boardCardTitlePopup")
form
label
| Card Title Filter
input.js-board-name(type="text" value=title autofocus)

View file

@ -1,4 +1,4 @@
BlazeComponent.extendComponent({ let rulesMainComponent = BlazeComponent.extendComponent({
onCreated() { onCreated() {
this.rulesCurrentTab = new ReactiveVar('rulesList'); this.rulesCurrentTab = new ReactiveVar('rulesList');
this.ruleName = new ReactiveVar(''); this.ruleName = new ReactiveVar('');
@ -9,7 +9,13 @@ BlazeComponent.extendComponent({
setTrigger() { setTrigger() {
this.rulesCurrentTab.set('trigger'); this.rulesCurrentTab.set('trigger');
}, },
sanitizeObject(obj){
Object.keys(obj).forEach(key =>{
if(obj[key] == "" || obj[key] == undefined){
obj[key] = "*";
}}
);
},
setRulesList() { setRulesList() {
this.rulesCurrentTab.set('rulesList'); this.rulesCurrentTab.set('rulesList');
}, },
@ -31,7 +37,6 @@ BlazeComponent.extendComponent({
Triggers.remove(rule.triggerId); Triggers.remove(rule.triggerId);
}, },
'click .js-open-card-title-popup': Popup.open('boardCardTitle'),
'click .js-goto-trigger' (event) { 'click .js-goto-trigger' (event) {
event.preventDefault(); event.preventDefault();
const ruleTitle = this.find('#ruleTitle').value; const ruleTitle = this.find('#ruleTitle').value;
@ -46,23 +51,23 @@ BlazeComponent.extendComponent({
// Add user to the trigger // Add user to the trigger
const username = $(event.currentTarget.offsetParent).find(".user-name").val(); const username = $(event.currentTarget.offsetParent).find(".user-name").val();
let trigger = this.triggerVar.get(); let trigger = this.triggerVar.get();
const user = Users.findOne({"username":username}); trigger["userId"] = "*";
if(user != undefined){ if(username != undefined ){
trigger["userId"] = user._id; const userFound = Users.findOne({"username":username});
}else{ if(userFound != undefined){
trigger["userId"] = "*"; trigger["userId"] = userFound._id;
this.triggerVar.set(trigger);
}
} }
// Sanitize trigger
trigger = this.triggerVar.get();
this.sanitizeObject(trigger)
this.triggerVar.set(trigger); this.triggerVar.set(trigger);
this.setAction(); this.setAction();
}, },
'click .js-show-user-field' (event) { 'click .js-show-user-field' (event) {
event.preventDefault(); event.preventDefault();
console.log(event);
console.log(event.currentTarget.offsetParent);
console.log($(event.currentTarget.offsetParent));
$(event.currentTarget.offsetParent).find(".user-details").removeClass("hide-element"); $(event.currentTarget.offsetParent).find(".user-details").removeClass("hide-element");
}, },
'click .js-goto-rules' (event) { 'click .js-goto-rules' (event) {
event.preventDefault(); event.preventDefault();
@ -88,3 +93,6 @@ BlazeComponent.extendComponent({
}, },
}).register('rulesMain'); }).register('rulesMain');

View file

@ -1,28 +1,12 @@
template(name="boardTriggers") template(name="boardTriggers")
div.trigger-item div.trigger-item#trigger-two
div.trigger-content div.trigger-content
div.trigger-text div.trigger-text
| {{_'r-when-a-card-is'}} | {{_'r-when-a-card'}}
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'}}
div.trigger-inline-button.js-open-card-title-popup div.trigger-inline-button.js-open-card-title-popup
i.fa.fa-filter i.fa.fa-filter
div.trigger-text
| {{_'r-is'}}
div.trigger-text div.trigger-text
| {{_'r-added-to'}} | {{_'r-added-to'}}
div.trigger-text div.trigger-text
@ -43,10 +27,14 @@ template(name="boardTriggers")
div.trigger-button.js-add-create-trigger.js-goto-action div.trigger-button.js-add-create-trigger.js-goto-action
i.fa.fa-plus i.fa.fa-plus
div.trigger-item div.trigger-item#trigger-three
div.trigger-content div.trigger-content
div.trigger-text 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 div.trigger-button.trigger-button-person.js-show-user-field
i.fa.fa-user i.fa.fa-user
div.user-details.hide-element div.user-details.hide-element
@ -57,10 +45,14 @@ template(name="boardTriggers")
div.trigger-button.js-add-gen-moved-trigger.js-goto-action div.trigger-button.js-add-gen-moved-trigger.js-goto-action
i.fa.fa-plus i.fa.fa-plus
div.trigger-item div.trigger-item#trigger-four
div.trigger-content div.trigger-content
div.trigger-text 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 div.trigger-dropdown
select(id="move-action") select(id="move-action")
option(value="moved-to") {{_'r-moved-to'}} option(value="moved-to") {{_'r-moved-to'}}
@ -84,10 +76,14 @@ template(name="boardTriggers")
div.trigger-button.js-add-moved-trigger.js-goto-action div.trigger-button.js-add-moved-trigger.js-goto-action
i.fa.fa-plus i.fa.fa-plus
div.trigger-item div.trigger-item#trigger-five
div.trigger-content div.trigger-content
div.trigger-text 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 div.trigger-dropdown
select(id="arch-action") select(id="arch-action")
option(value="archived") {{_'r-archived'}} option(value="archived") {{_'r-archived'}}
@ -102,6 +98,12 @@ template(name="boardTriggers")
div.trigger-button.js-add-arch-trigger.js-goto-action div.trigger-button.js-add-arch-trigger.js-goto-action
i.fa.fa-plus 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'}}")

View file

@ -1,34 +1,36 @@
BlazeComponent.extendComponent({ BlazeComponent.extendComponent({
onCreated() { onCreated() {
this.provaVar = new ReactiveVar('');
this.currentPopupTriggerId = "def";
this.cardTitleFilters = {};
},
setNameFilter(name){
this.cardTitleFilters[this.currentPopupTriggerId] = name;
}, },
events() { events() {
return [{ return [{
'click .js-add-gen-trigger' (event) { 'click .js-open-card-title-popup'(event){
const desc = Utils.getTriggerActionDesc(event, this); var funct = Popup.open('boardCardTitle');
const datas = this.data(); let divId = $(event.currentTarget.parentNode.parentNode).attr("id");
const boardId = Session.get('currentBoard'); console.log("current popup");
datas.triggerVar.set({ console.log(this.currentPopupTriggerId);
activityType: 'createCard', this.currentPopupTriggerId = divId;
boardId, funct.call(this,event);
'listName': '*',
desc,
});
}, },
'click .js-add-create-trigger' (event) { 'click .js-add-create-trigger' (event) {
const desc = Utils.getTriggerActionDesc(event, this); const desc = Utils.getTriggerActionDesc(event, this);
const datas = this.data(); const datas = this.data();
const listName = this.find('#create-list-name').value; const listName = this.find('#create-list-name').value;
const swimlaneName = this.find('#create-swimlane-name').value; const swimlaneName = this.find('#create-swimlane-name').value;
if(swimlaneName == undefined || swimlaneName == ""){
swimlaneName = "*";
}
const boardId = Session.get('currentBoard'); const boardId = Session.get('currentBoard');
const divId = $(event.currentTarget.parentNode).attr("id");
const cardTitle = this.cardTitleFilters[divId];
// move to generic funciont
datas.triggerVar.set({ datas.triggerVar.set({
activityType: 'createCard', activityType: 'createCard',
boardId, boardId,
cardTitle,
swimlaneName, swimlaneName,
listName, listName,
desc, desc,
@ -41,9 +43,6 @@ BlazeComponent.extendComponent({
const actionSelected = this.find('#move-action').value; const actionSelected = this.find('#move-action').value;
const listName = this.find('#move-list-name').value; const listName = this.find('#move-list-name').value;
const boardId = Session.get('currentBoard'); const boardId = Session.get('currentBoard');
if(swimlaneName == undefined || swimlaneName == ""){
swimlaneName = "*";
}
if (actionSelected === 'moved-to') { if (actionSelected === 'moved-to') {
datas.triggerVar.set({ datas.triggerVar.set({
activityType: 'moveCard', activityType: 'moveCard',
@ -71,8 +70,9 @@ BlazeComponent.extendComponent({
const boardId = Session.get('currentBoard'); const boardId = Session.get('currentBoard');
datas.triggerVar.set({ datas.triggerVar.set({
activityType: 'moveCard', 'activityType': 'moveCard',
boardId, boardId,
'swimlaneName': '*',
'listName':'*', 'listName':'*',
'oldListName': '*', 'oldListName': '*',
desc, desc,
@ -103,3 +103,16 @@ BlazeComponent.extendComponent({
}, },
}).register('boardTriggers'); }).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();
},
});

View file

@ -538,11 +538,14 @@
"r-delete-rule": "Delete rule", "r-delete-rule": "Delete rule",
"r-new-rule-name": "New rule title", "r-new-rule-name": "New rule title",
"r-no-rules": "No rules", "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-added-to": "Added to",
"r-removed-from": "Removed from", "r-removed-from": "Removed from",
"r-the-board": "the board", "r-the-board": "the board",
"r-list": "list", "r-list": "list",
"set-filter":"Set Filter",
"r-moved-to": "Moved to", "r-moved-to": "Moved to",
"r-moved-from": "Moved from", "r-moved-from": "Moved from",
"r-archived": "Moved to Archive", "r-archived": "Moved to Archive",

View file

@ -1238,6 +1238,7 @@ function cardCreation(userId, doc) {
listName: Lists.findOne(doc.listId).title, listName: Lists.findOne(doc.listId).title,
listId: doc.listId, listId: doc.listId,
cardId: doc._id, cardId: doc._id,
cardTitle:doc.title,
swimlaneName: Swimlanes.findOne(doc.swimlaneId).title, swimlaneName: Swimlanes.findOne(doc.swimlaneId).title,
swimlaneId: doc.swimlaneId, swimlaneId: doc.swimlaneId,
}); });

View file

@ -1,6 +1,6 @@
TriggersDef = { TriggersDef = {
createCard:{ createCard:{
matchingFields: ['boardId', 'listName','userId','swimlaneName'], matchingFields: ['boardId', 'listName','userId','swimlaneName','cardTitle'],
}, },
moveCard:{ moveCard:{
matchingFields: ['boardId', 'listName', 'oldListName','userId','swimlaneName'], matchingFields: ['boardId', 'listName', 'oldListName','userId','swimlaneName'],