boardActions.js 6.7 KB

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