| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 | 
							- const { calculateIndexData } = Utils;
 
- let swimlaneColors;
 
- Meteor.startup(() => {
 
-   swimlaneColors = Swimlanes.simpleSchema()._schema.color.allowedValues;
 
- });
 
- BlazeComponent.extendComponent({
 
-   editTitle(evt) {
 
-     evt.preventDefault();
 
-     const newTitle = this.childComponents('inlinedForm')[0].getValue().trim();
 
-     const swimlane = this.currentData();
 
-     if (newTitle) {
 
-       swimlane.rename(newTitle.trim());
 
-     }
 
-   },
 
-   events() {
 
-     return [{
 
-       'click .js-open-swimlane-menu': Popup.open('swimlaneAction'),
 
-       'click .js-open-add-swimlane-menu': Popup.open('swimlaneAdd'),
 
-       submit: this.editTitle,
 
-     }];
 
-   },
 
- }).register('swimlaneHeader');
 
- Template.swimlaneActionPopup.events({
 
-   'click .js-set-swimlane-color': Popup.open('setSwimlaneColor'),
 
-   'click .js-close-swimlane' (evt) {
 
-     evt.preventDefault();
 
-     this.archive();
 
-     Popup.close();
 
-   },
 
- });
 
- BlazeComponent.extendComponent({
 
-   onCreated() {
 
-     this.currentSwimlane = this.currentData();
 
-   },
 
-   events() {
 
-     return [{
 
-       submit(evt) {
 
-         evt.preventDefault();
 
-         const currentBoard = Boards.findOne(Session.get('currentBoard'));
 
-         const nextSwimlane = currentBoard.nextSwimlane(this.currentSwimlane);
 
-         const titleInput = this.find('.swimlane-name-input');
 
-         const title = titleInput.value.trim();
 
-         const sortValue = calculateIndexData(this.currentSwimlane, nextSwimlane, 1);
 
-         const swimlaneType = (currentBoard.isTemplatesBoard())?'template-swimlane':'swimlane';
 
-         if (title) {
 
-           Swimlanes.insert({
 
-             title,
 
-             boardId: Session.get('currentBoard'),
 
-             sort: sortValue.base,
 
-             type: swimlaneType,
 
-           });
 
-           titleInput.value = '';
 
-           titleInput.focus();
 
-         }
 
-         // XXX ideally, we should move the popup to the newly
 
-         // created swimlane so a user can add more than one swimlane
 
-         // with a minimum of interactions
 
-         Popup.close();
 
-       },
 
-       'click .js-swimlane-template': Popup.open('searchElement'),
 
-     }];
 
-   },
 
- }).register('swimlaneAddPopup');
 
- BlazeComponent.extendComponent({
 
-   onCreated() {
 
-     this.currentSwimlane = this.currentData();
 
-     this.currentColor = new ReactiveVar(this.currentSwimlane.color);
 
-   },
 
-   colors() {
 
-     return swimlaneColors.map((color) => ({ color, name: '' }));
 
-   },
 
-   isSelected(color) {
 
-     return this.currentColor.get() === color;
 
-   },
 
-   events() {
 
-     return [{
 
-       'click .js-palette-color'() {
 
-         this.currentColor.set(this.currentData().color);
 
-       },
 
-       'click .js-submit' () {
 
-         this.currentSwimlane.setColor(this.currentColor.get());
 
-         Popup.close();
 
-       },
 
-       'click .js-remove-color'() {
 
-         this.currentSwimlane.setColor(null);
 
-         Popup.close();
 
-       },
 
-     }];
 
-   },
 
- }).register('setSwimlaneColorPopup');
 
 
  |