triggers.js 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. Triggers = new Mongo.Collection('triggers');
  2. Triggers.mutations({
  3. rename(description) {
  4. return { $set: { description } };
  5. },
  6. });
  7. Triggers.allow({
  8. insert(userId, doc) {
  9. return allowIsBoardAdmin(userId, Boards.findOne(doc.boardId));
  10. },
  11. update(userId, doc) {
  12. return allowIsBoardAdmin(userId, Boards.findOne(doc.boardId));
  13. },
  14. remove(userId, doc) {
  15. return allowIsBoardAdmin(userId, Boards.findOne(doc.boardId));
  16. }
  17. });
  18. Triggers.helpers({
  19. description(){
  20. if(this.activityType == "createCard"){
  21. if(this.listName == "*"){
  22. return TAPi18n.__('r-when-a-card-is') + " " + TAPi18n.__('r-added-to').toLowerCase() + " " + TAPi18n.__('r-the-board');
  23. }else{
  24. return TAPi18n.__('r-when-a-card-is') + " " + TAPi18n.__('r-added-to').toLowerCase() + " " + TAPi18n.__('r-list') + " " +this.listName;
  25. }
  26. }
  27. if(this.activityType == "removeCard"){
  28. if(this.listName == "*"){
  29. return TAPi18n.__('r-when-a-card-is') + " " + TAPi18n.__('r-removed-from') + " " + TAPi18n.__('r-the-board');
  30. }else{
  31. return TAPi18n.__('r-when-a-card-is') + " " + TAPi18n.__('r-removed-from') + " " + TAPi18n.__('r-list') + " " +this.listName;
  32. }
  33. }
  34. if(this.activityType == "moveCard"){
  35. if(this.listName = "*"){
  36. return TAPi18n.__('r-when-a-card-is') + " " + TAPi18n.__('r-moved-from') + " " + this.oldListName;
  37. }else{
  38. return TAPi18n.__('r-when-a-card-is') + " " + TAPi18n.__('r-moved-to') + " " + this.listName;
  39. }
  40. }
  41. if(this.activityType = "archivedCard"){
  42. return TAPi18n.__('r-when-a-card-is') + " " + TAPi18n.__('r-archived');
  43. }
  44. if(this.activityType = "restoredCard"){
  45. return TAPi18n.__('r-when-a-card-is') + " " + TAPi18n.__('r-unarchived');
  46. }
  47. if(this.activityType = "addedLabel"){
  48. if(this.labelId == "*"){
  49. return TAPi18n.__('r-when-a-label-is') + " " + TAPi18n.__('r-added-to') + " " + TAPi18n.__('r-a-card');
  50. }else{
  51. const board = Boards.findOne(Session.get('currentBoard'));
  52. const label = board.getLabelById(this.labelId);
  53. let name;
  54. if(label.name == "" || label.name == undefined){
  55. name = label.color.toUpperCase();
  56. }else{
  57. name = label.name;
  58. }
  59. }
  60. }
  61. if(this.activityType = "restoredCard"){
  62. return TAPi18n.__('r-when-a-card-is') + " " + TAPi18n.__('r-unarchived');
  63. }
  64. return "No description found";
  65. },
  66. getRule(){
  67. return Rules.findOne({triggerId:this._id});
  68. },
  69. fromList() {
  70. return Lists.findOne(this.fromId);
  71. },
  72. toList() {
  73. return Lists.findOne(this.toId);
  74. },
  75. findList(title) {
  76. return Lists.findOne({title:title});
  77. },
  78. labels() {
  79. const boardLabels = this.board().labels;
  80. const cardLabels = _.filter(boardLabels, (label) => {
  81. return _.contains(this.labelIds, label._id);
  82. });
  83. return cardLabels;
  84. }});