| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188 | 
							- export class DialogWithBoardSwimlaneList extends BlazeComponent {
 
-   /** returns the card dialog options
 
-    * @return Object with properties { boardId, swimlaneId, listId }
 
-    */
 
-   getDialogOptions() {
 
-   }
 
-   /** list is done
 
-    * @param listId the selected list id
 
-    * @param options the selected options (Object with properties { boardId, swimlaneId, listId })
 
-    */
 
-   setDone(listId, options) {
 
-   }
 
-   /** get the default options
 
-    * @return the options
 
-    */
 
-   getDefaultOption(boardId) {
 
-     const ret = {
 
-       'boardId' : "",
 
-       'swimlaneId' : "",
 
-       'listId' : "",
 
-     }
 
-     return ret;
 
-   }
 
-   onCreated() {
 
-     this.currentBoardId = Utils.getCurrentBoardId();
 
-     this.selectedBoardId = new ReactiveVar(this.currentBoardId);
 
-     this.selectedSwimlaneId = new ReactiveVar('');
 
-     this.selectedListId = new ReactiveVar('');
 
-     this.setOption(this.currentBoardId);
 
-   }
 
-   /** set the last confirmed dialog field values
 
-    * @param boardId the current board id
 
-    */
 
-   setOption(boardId) {
 
-     this.cardOption = this.getDefaultOption();
 
-     let currentOptions = this.getDialogOptions();
 
-     if (currentOptions && boardId && currentOptions[boardId]) {
 
-       this.cardOption = currentOptions[boardId];
 
-       if (this.cardOption.boardId &&
 
-           this.cardOption.swimlaneId &&
 
-           this.cardOption.listId
 
-       )
 
-       {
 
-         this.selectedBoardId.set(this.cardOption.boardId)
 
-         this.selectedSwimlaneId.set(this.cardOption.swimlaneId);
 
-         this.selectedListId.set(this.cardOption.listId);
 
-       }
 
-     }
 
-     this.getBoardData(this.selectedBoardId.get());
 
-     if (!this.selectedSwimlaneId.get() || !Swimlanes.findOne({_id: this.selectedSwimlaneId.get(), boardId: this.selectedBoardId.get()})) {
 
-       this.setFirstSwimlaneId();
 
-     }
 
-     if (!this.selectedListId.get() || !Lists.findOne({_id: this.selectedListId.get(), boardId: this.selectedBoardId.get()})) {
 
-       this.setFirstListId();
 
-     }
 
-   }
 
-   /** sets the first swimlane id */
 
-   setFirstSwimlaneId() {
 
-     try {
 
-       const board = Boards.findOne(this.selectedBoardId.get());
 
-       const swimlaneId = board.swimlanes().fetch()[0]._id;
 
-       this.selectedSwimlaneId.set(swimlaneId);
 
-     } catch (e) {}
 
-   }
 
-   /** sets the first list id */
 
-   setFirstListId() {
 
-     try {
 
-       const board = Boards.findOne(this.selectedBoardId.get());
 
-       const listId = board.lists().fetch()[0]._id;
 
-       this.selectedListId.set(listId);
 
-     } catch (e) {}
 
-   }
 
-   /** returns if the board id was the last confirmed one
 
-    * @param boardId check this board id
 
-    * @return if the board id was the last confirmed one
 
-    */
 
-   isDialogOptionBoardId(boardId) {
 
-     let ret = this.cardOption.boardId == boardId;
 
-     return ret;
 
-   }
 
-   /** returns if the swimlane id was the last confirmed one
 
-    * @param swimlaneId check this swimlane id
 
-    * @return if the swimlane id was the last confirmed one
 
-    */
 
-   isDialogOptionSwimlaneId(swimlaneId) {
 
-     let ret = this.cardOption.swimlaneId == swimlaneId;
 
-     return ret;
 
-   }
 
-   /** returns if the list id was the last confirmed one
 
-    * @param listId check this list id
 
-    * @return if the list id was the last confirmed one
 
-    */
 
-   isDialogOptionListId(listId) {
 
-     let ret = this.cardOption.listId == listId;
 
-     return ret;
 
-   }
 
-   /** returns all available board */
 
-   boards() {
 
-     const ret = Boards.find(
 
-       {
 
-         archived: false,
 
-         'members.userId': Meteor.userId(),
 
-         _id: { $ne: Meteor.user().getTemplatesBoardId() },
 
-       },
 
-       {
 
-         sort: { sort: 1 },
 
-       },
 
-     );
 
-     return ret;
 
-   }
 
-   /** returns all available swimlanes of the current board */
 
-   swimlanes() {
 
-     const board = Boards.findOne(this.selectedBoardId.get());
 
-     const ret = board.swimlanes();
 
-     return ret;
 
-   }
 
-   /** returns all available lists of the current board */
 
-   lists() {
 
-     const board = Boards.findOne(this.selectedBoardId.get());
 
-     const ret = board.lists();
 
-     return ret;
 
-   }
 
-   /** get the board data from the server
 
-    * @param boardId get the board data of this board id
 
-    */
 
-   getBoardData(boardId) {
 
-     const self = this;
 
-     Meteor.subscribe('board', boardId, false, {
 
-       onReady() {
 
-         const sameBoardId = self.selectedBoardId.get() == boardId;
 
-         self.selectedBoardId.set(boardId);
 
-         if (!sameBoardId) {
 
-           // reset swimlane id (for selection in cards())
 
-           self.setFirstSwimlaneId();
 
-           // reset list id (for selection in cards())
 
-           self.setFirstListId();
 
-         }
 
-       },
 
-     });
 
-   }
 
-   events() {
 
-     return [
 
-       {
 
-         'click .js-done'() {
 
-           const boardSelect = this.$('.js-select-boards')[0];
 
-           const boardId = boardSelect.options[boardSelect.selectedIndex].value;
 
-           const listSelect = this.$('.js-select-lists')[0];
 
-           const listId = listSelect.options[listSelect.selectedIndex].value;
 
-           const swimlaneSelect = this.$('.js-select-swimlanes')[0];
 
-           const swimlaneId = swimlaneSelect.options[swimlaneSelect.selectedIndex].value;
 
-           const options = {
 
-             'boardId' : boardId,
 
-             'swimlaneId' : swimlaneId,
 
-             'listId' : listId,
 
-           }
 
-           this.setDone(boardId, swimlaneId, listId, options);
 
-           Popup.back(2);
 
-         },
 
-         'change .js-select-boards'(event) {
 
-           const boardId = $(event.currentTarget).val();
 
-           this.getBoardData(boardId);
 
-         },
 
-         'change .js-select-swimlanes'(event) {
 
-           this.selectedSwimlaneId.set($(event.currentTarget).val());
 
-         },
 
-       },
 
-     ];
 
-   }
 
- }
 
 
  |