Prechádzať zdrojové kódy

Finished triggers improvements

Angelo Gallarello 6 rokov pred
rodič
commit
25968a35cc

+ 1 - 7
client/components/rules/rulesMain.jade

@@ -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)
-
-template(name="boardCardTitlePopup")
-    form
-      label
-        | Card Title Filter
-        input.js-board-name(type="text" value=title autofocus)
+    +ruleDetails(ruleId=ruleId)

+ 21 - 13
client/components/rules/rulesMain.js

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

+ 28 - 26
client/components/rules/triggers/boardTriggers.jade

@@ -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'}}
-      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 
       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'}}")
 
 
    
    
   
   

+ 32 - 19
client/components/rules/triggers/boardTriggers.js

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

+ 4 - 1
i18n/en.i18n.json

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

+ 1 - 0
models/cards.js

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

+ 1 - 1
server/triggersDef.js

@@ -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'],