From f63482b58775a2f52fdd5f932ce7d14f16757133 Mon Sep 17 00:00:00 2001 From: Angelo Gallarello Date: Fri, 3 Aug 2018 19:47:20 +0200 Subject: [PATCH] UI for rules list --- .DS_Store | Bin 0 -> 6148 bytes .meteor/packages | 4 +- RASD.txt | 22 +++++++ client/components/boards/boardHeader.jade | 9 +++ client/components/boards/boardHeader.js | 3 + client/components/lists/listBody.js | 2 + client/components/rules/rules.jade | 27 ++++++++ client/components/rules/rules.js | 25 ++++++++ client/components/rules/rules.styl | 34 ++++++++++ client/lib/popup.js | 1 + i18n/en.i18n.json | 1 + models/.DS_Store | Bin 0 -> 6148 bytes models/cards.js | 1 + models/rules.js | 38 +++++++++++ models/triggers.js | 74 ++++++++++++++++++++++ server/.DS_Store | Bin 0 -> 6148 bytes server/lib/.DS_Store | Bin 0 -> 6148 bytes server/lib/utils.js | 3 + server/publications/rules.js | 14 ++++ 19 files changed, 256 insertions(+), 2 deletions(-) create mode 100644 .DS_Store create mode 100644 RASD.txt create mode 100644 client/components/rules/rules.jade create mode 100644 client/components/rules/rules.js create mode 100644 client/components/rules/rules.styl create mode 100644 models/.DS_Store create mode 100644 models/rules.js create mode 100644 models/triggers.js create mode 100644 server/.DS_Store create mode 100644 server/lib/.DS_Store create mode 100644 server/publications/rules.js diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..06b9364144e6958edc6aa5c97ccd8aeb500ca771 GIT binary patch literal 6148 zcmeHKJ5EC}5S)bwMWRVb=__ypD+(vb1tLB|NKrsRN&PC$#nCeRDR_ENq@amrrS;hB z9b2B_?OOo0JUrh63jlMvBffl?n(w<$?5ZM;7H7QS>A2qSw(q;wN%rpn=icB02Rven zF`s90?-MWBLiOIxKGHId!vDhhlL%<1Nx* zJyD|+kOE@`u5-EY`u{-xqyHb1w2}f+;Gz_;*=oI7@<~-&Cy(=5+vpp*=X}%MI1dVk mD96Mo$6R { self._dep.depend(); return { ...self._getTopStack(), stack: self._stack }; diff --git a/i18n/en.i18n.json b/i18n/en.i18n.json index 9244af9c7..38d200e68 100644 --- a/i18n/en.i18n.json +++ b/i18n/en.i18n.json @@ -362,6 +362,7 @@ "restore": "Restore", "save": "Save", "search": "Search", + "rules": "Rules", "search-cards": "Search from card titles and descriptions on this board", "search-example": "Text to search for?", "select-color": "Select Color", diff --git a/models/.DS_Store b/models/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 GIT binary patch literal 6148 zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0 { + const rules = Rules.findOne({}); + if(!rules){ + Rules.insert({title: "regola1", description: "bella"}); + Rules.insert({title: "regola2", description: "bella2"}); + } + }); +} diff --git a/models/triggers.js b/models/triggers.js new file mode 100644 index 000000000..f8dbb50d1 --- /dev/null +++ b/models/triggers.js @@ -0,0 +1,74 @@ +Triggers = new Mongo.Collection('triggers'); + + + +Triggers.mutations({ + rename(description) { + return { $set: { description } }; + }, +}); + +Triggers.allow({ + update: function () { + // add custom authentication code here + return true; + }, + insert: function () { + // add custom authentication code here + return true; + } +}); + + +Triggers.helpers({ + fromList() { + return Lists.findOne(this.fromId); + }, + + toList() { + return Lists.findOne(this.toId); + }, + + findList(title) { + return Lists.findOne({title:title}); + }, + + labels() { + const boardLabels = this.board().labels; + const cardLabels = _.filter(boardLabels, (label) => { + return _.contains(this.labelIds, label._id); + }); + return cardLabels; + }}); + + + +if (Meteor.isServer) { + Meteor.startup(() => { + const rules = Triggers.findOne({}); + if(!rules){ + Triggers.insert({group: "cards", activityType: "moveCard","fromId":-1,"toId":-1 }); + } + }); +} + + + + Activities.after.insert((userId, doc) => { + const activity = Activities._transform(doc); + const matchedTriggers = Triggers.find({activityType: activity.activityType,fromId:activity.oldListId,toId:activity.listId}) + if(matchedTriggers.count() > 0){ + const card = activity.card(); + const oldTitle = card.title; + const fromListTitle = activity.oldList().title; + Cards.direct.update({_id: card._id, listId: card.listId, boardId: card.boardId, archived: false}, + {$set: {title: "[From "+fromListTitle +"] "+ oldTitle}}); + } + }); + + + + + + + diff --git a/server/.DS_Store b/server/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..75d4743639d01bcb7a32f6cd4a18047945d1cb2a GIT binary patch literal 6148 zcmeHK&1%~~5Z<-jR;r+=(1Qy(EcDQe4|Wxjt5EEm3JH;E4*hW@Bx-?>j3nC!V-S6S zK0tEK&wC_!fFAoIy?17J9TME$LMUbiX203lnOXLe*dN9i_oh*gF`F@FfFd?bX#OHN zj=Cld?Lp*Nqnw0k9zySTI9ZD($N$Ixe!C`1S;E3_e)s#ONm+Hfzj&kBdh+y{VLrD^ z>xE^0_Q(0$uYzh?dOuzm-b;$jiHY5#tnW-CQZW}+3m%m=Qthl z&T*CA19}0=NFe(*NT4*zp9j%8dq=whNfcX7g?HT z-@vnqUPTcS1H=F^umKF{t5R*np^l!J>lX@_vx8sAaK>GQ)Di>4 zzJAqF0mfj`#0U^V~% literal 0 HcmV?d00001 diff --git a/server/lib/.DS_Store b/server/lib/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 GIT binary patch literal 6148 zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0 { + check(ruleId, String); + return Rules.find({ _id: ruleId }); +}); + + +Meteor.publish('allRules', () => { + return Rules.find({}); +}); + + +Meteor.publish('allTriggers', () => { + return Triggers.find({}); +});