dialogWithBoardSwimlaneListCard.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. import { ReactiveCache } from '/imports/reactiveCache';
  2. import { DialogWithBoardSwimlaneList } from '/client/lib/dialogWithBoardSwimlaneList';
  3. export class DialogWithBoardSwimlaneListCard extends DialogWithBoardSwimlaneList {
  4. getDefaultOption(boardId) {
  5. const ret = {
  6. 'boardId' : "",
  7. 'swimlaneId' : "",
  8. 'listId' : "",
  9. 'cardId': "",
  10. }
  11. return ret;
  12. }
  13. /** returns if the card id was the last confirmed one
  14. * @param cardId check this card id
  15. * @return if the card id was the last confirmed one
  16. */
  17. isDialogOptionCardId(cardId) {
  18. let ret = this.cardOption.cardId == cardId;
  19. return ret;
  20. }
  21. /** returns all available cards of the current list */
  22. cards() {
  23. const list = ReactiveCache.getList(this.selectedListId.get());
  24. let ret = [];
  25. if (list) {
  26. ret = list.cards(this.selectedSwimlaneId.get());
  27. }
  28. return ret;
  29. }
  30. events() {
  31. return [
  32. {
  33. 'click .js-done'() {
  34. const boardSelect = this.$('.js-select-boards')[0];
  35. const boardId = boardSelect.options[boardSelect.selectedIndex].value;
  36. const listSelect = this.$('.js-select-lists')[0];
  37. const listId = listSelect.options[listSelect.selectedIndex].value;
  38. const swimlaneSelect = this.$('.js-select-swimlanes')[0];
  39. const swimlaneId = swimlaneSelect.options[swimlaneSelect.selectedIndex].value;
  40. const cardSelect = this.$('.js-select-cards')[0];
  41. const cardId = cardSelect.options[cardSelect.selectedIndex].value;
  42. const options = {
  43. 'boardId' : boardId,
  44. 'swimlaneId' : swimlaneId,
  45. 'listId' : listId,
  46. 'cardId': cardId,
  47. }
  48. this.setDone(cardId, options);
  49. Popup.back(2);
  50. },
  51. 'change .js-select-boards'(event) {
  52. const boardId = $(event.currentTarget).val();
  53. this.getBoardData(boardId);
  54. },
  55. 'change .js-select-swimlanes'(event) {
  56. this.selectedSwimlaneId.set($(event.currentTarget).val());
  57. },
  58. 'change .js-select-lists'(event) {
  59. this.selectedListId.set($(event.currentTarget).val());
  60. },
  61. },
  62. ];
  63. }
  64. }