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')
+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)
+ruleDetails(ruleId=ruleId)

View file

@ -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');

View file

@ -1,28 +1,12 @@
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
@ -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'}}")

View file

@ -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();
},
});

View file

@ -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",

View file

@ -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,
});

View file

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