boardActions.js 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. BlazeComponent.extendComponent({
  2. onCreated() {},
  3. boards() {
  4. const boards = Boards.find(
  5. {
  6. archived: false,
  7. 'members.userId': Meteor.userId(),
  8. _id: {
  9. $ne: Meteor.user().getTemplatesBoardId(),
  10. },
  11. },
  12. {
  13. sort: { sort: 1 /* boards default sorting */ },
  14. },
  15. );
  16. return boards;
  17. },
  18. events() {
  19. return [
  20. {
  21. 'click .js-create-card-action'(event) {
  22. const ruleName = this.data().ruleName.get();
  23. const trigger = this.data().triggerVar.get();
  24. const cardName = this.find('#card-name').value;
  25. const listName = this.find('#list-name').value;
  26. const swimlaneName = this.find('#swimlane-name2').value;
  27. const boardId = Session.get('currentBoard');
  28. const desc = Utils.getTriggerActionDesc(event, this);
  29. const triggerId = Triggers.insert(trigger);
  30. const actionId = Actions.insert({
  31. actionType: 'createCard',
  32. swimlaneName,
  33. cardName,
  34. listName,
  35. boardId,
  36. desc,
  37. });
  38. Rules.insert({
  39. title: ruleName,
  40. triggerId,
  41. actionId,
  42. boardId,
  43. });
  44. },
  45. 'click .js-add-swimlane-action'(event) {
  46. const ruleName = this.data().ruleName.get();
  47. const trigger = this.data().triggerVar.get();
  48. const swimlaneName = this.find('#swimlane-name').value;
  49. const boardId = Session.get('currentBoard');
  50. const desc = Utils.getTriggerActionDesc(event, this);
  51. const triggerId = Triggers.insert(trigger);
  52. const actionId = Actions.insert({
  53. actionType: 'addSwimlane',
  54. swimlaneName,
  55. boardId,
  56. desc,
  57. });
  58. Rules.insert({
  59. title: ruleName,
  60. triggerId,
  61. actionId,
  62. boardId,
  63. });
  64. },
  65. 'click .js-add-spec-move-action'(event) {
  66. const ruleName = this.data().ruleName.get();
  67. const trigger = this.data().triggerVar.get();
  68. const actionSelected = this.find('#move-spec-action').value;
  69. const swimlaneName = this.find('#swimlaneName').value || '*';
  70. const listName = this.find('#listName').value || '*';
  71. const boardId = Session.get('currentBoard');
  72. const destBoardId = this.find('#board-id').value;
  73. const desc = Utils.getTriggerActionDesc(event, this);
  74. if (actionSelected === 'top') {
  75. const triggerId = Triggers.insert(trigger);
  76. const actionId = Actions.insert({
  77. actionType: 'moveCardToTop',
  78. listName,
  79. swimlaneName,
  80. boardId: destBoardId,
  81. desc,
  82. });
  83. Rules.insert({
  84. title: ruleName,
  85. triggerId,
  86. actionId,
  87. boardId,
  88. });
  89. }
  90. if (actionSelected === 'bottom') {
  91. const triggerId = Triggers.insert(trigger);
  92. const actionId = Actions.insert({
  93. actionType: 'moveCardToBottom',
  94. listName,
  95. swimlaneName,
  96. boardId: destBoardId,
  97. desc,
  98. });
  99. Rules.insert({
  100. title: ruleName,
  101. triggerId,
  102. actionId,
  103. boardId,
  104. });
  105. }
  106. },
  107. 'click .js-add-gen-move-action'(event) {
  108. const desc = Utils.getTriggerActionDesc(event, this);
  109. const boardId = Session.get('currentBoard');
  110. const ruleName = this.data().ruleName.get();
  111. const trigger = this.data().triggerVar.get();
  112. const actionSelected = this.find('#move-gen-action').value;
  113. if (actionSelected === 'top') {
  114. const triggerId = Triggers.insert(trigger);
  115. const actionId = Actions.insert({
  116. actionType: 'moveCardToTop',
  117. listTitle: '*',
  118. boardId,
  119. desc,
  120. });
  121. Rules.insert({
  122. title: ruleName,
  123. triggerId,
  124. actionId,
  125. boardId,
  126. });
  127. }
  128. if (actionSelected === 'bottom') {
  129. const triggerId = Triggers.insert(trigger);
  130. const actionId = Actions.insert({
  131. actionType: 'moveCardToBottom',
  132. listTitle: '*',
  133. boardId,
  134. desc,
  135. });
  136. Rules.insert({
  137. title: ruleName,
  138. triggerId,
  139. actionId,
  140. boardId,
  141. });
  142. }
  143. },
  144. 'click .js-add-arch-action'(event) {
  145. const desc = Utils.getTriggerActionDesc(event, this);
  146. const boardId = Session.get('currentBoard');
  147. const ruleName = this.data().ruleName.get();
  148. const trigger = this.data().triggerVar.get();
  149. const actionSelected = this.find('#arch-action').value;
  150. if (actionSelected === 'archive') {
  151. const triggerId = Triggers.insert(trigger);
  152. const actionId = Actions.insert({
  153. actionType: 'archive',
  154. boardId,
  155. desc,
  156. });
  157. Rules.insert({
  158. title: ruleName,
  159. triggerId,
  160. actionId,
  161. boardId,
  162. });
  163. }
  164. if (actionSelected === 'unarchive') {
  165. const triggerId = Triggers.insert(trigger);
  166. const actionId = Actions.insert({
  167. actionType: 'unarchive',
  168. boardId,
  169. desc,
  170. });
  171. Rules.insert({
  172. title: ruleName,
  173. triggerId,
  174. actionId,
  175. boardId,
  176. });
  177. }
  178. },
  179. },
  180. ];
  181. },
  182. }).register('boardActions');
  183. /* eslint-no-undef */