| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263 | 
							- import { Cookies } from 'meteor/ostrio:cookies';
 
- const cookies = new Cookies();
 
- let listsColors;
 
- Meteor.startup(() => {
 
-   listsColors = Lists.simpleSchema()._schema.color.allowedValues;
 
- });
 
- BlazeComponent.extendComponent({
 
-   canSeeAddCard() {
 
-     const list = Template.currentData();
 
-     return (
 
-       (!list.getWipLimit('enabled') ||
 
-         list.getWipLimit('soft') ||
 
-         !this.reachedWipLimit()) &&
 
-       !Meteor.user().isWorker()
 
-     );
 
-   },
 
-   isBoardAdmin() {
 
-     return Meteor.user().isBoardAdmin();
 
-   },
 
-   starred(check = undefined) {
 
-     const list = Template.currentData();
 
-     const status = list.isStarred();
 
-     if (check === undefined) {
 
-       // just check
 
-       return status;
 
-     } else {
 
-       list.star(!status);
 
-       return !status;
 
-     }
 
-   },
 
-   editTitle(event) {
 
-     event.preventDefault();
 
-     const newTitle = this.childComponents('inlinedForm')[0]
 
-       .getValue()
 
-       .trim();
 
-     const list = this.currentData();
 
-     if (newTitle) {
 
-       list.rename(newTitle.trim());
 
-     }
 
-   },
 
-   isWatching() {
 
-     const list = this.currentData();
 
-     return list.findWatcher(Meteor.userId());
 
-   },
 
-   limitToShowCardsCount() {
 
-     const currentUser = Meteor.user();
 
-     if (currentUser) {
 
-       return Meteor.user().getLimitToShowCardsCount();
 
-     } else {
 
-       return false;
 
-     }
 
-   },
 
-   cardsCount() {
 
-     const list = Template.currentData();
 
-     let swimlaneId = '';
 
-     if (Utils.boardView() === 'board-view-swimlanes')
 
-       swimlaneId = this.parentComponent()
 
-         .parentComponent()
 
-         .data()._id;
 
-     return list.cards(swimlaneId).count();
 
-   },
 
-   reachedWipLimit() {
 
-     const list = Template.currentData();
 
-     return (
 
-       list.getWipLimit('enabled') &&
 
-       list.getWipLimit('value') <= list.cards().count()
 
-     );
 
-   },
 
-   showCardsCountForList(count) {
 
-     const limit = this.limitToShowCardsCount();
 
-     return limit > 0 && count > limit;
 
-   },
 
-   events() {
 
-     return [
 
-       {
 
-         'click .js-list-star'(event) {
 
-           event.preventDefault();
 
-           this.starred(!this.starred());
 
-         },
 
-         'click .js-open-list-menu': Popup.open('listAction'),
 
-         'click .js-add-card'(event) {
 
-           const listDom = $(event.target).parents(
 
-             `#js-list-${this.currentData()._id}`,
 
-           )[0];
 
-           const listComponent = BlazeComponent.getComponentForElement(listDom);
 
-           listComponent.openForm({
 
-             position: 'top',
 
-           });
 
-         },
 
-         'click .js-unselect-list'() {
 
-           Session.set('currentList', null);
 
-         },
 
-         submit: this.editTitle,
 
-       },
 
-     ];
 
-   },
 
- }).register('listHeader');
 
- Template.listHeader.helpers({
 
-   showDesktopDragHandles() {
 
-     currentUser = Meteor.user();
 
-     if (currentUser) {
 
-       return (currentUser.profile || {}).showDesktopDragHandles;
 
-     } else if (cookies.has('showDesktopDragHandles')) {
 
-       return true;
 
-     } else {
 
-       return false;
 
-     }
 
-   },
 
- });
 
- Template.listActionPopup.helpers({
 
-   isWipLimitEnabled() {
 
-     return Template.currentData().getWipLimit('enabled');
 
-   },
 
-   isWatching() {
 
-     return this.findWatcher(Meteor.userId());
 
-   },
 
- });
 
- Template.listActionPopup.events({
 
-   'click .js-list-subscribe'() {},
 
-   'click .js-set-color-list': Popup.open('setListColor'),
 
-   'click .js-select-cards'() {
 
-     const cardIds = this.allCards().map(card => card._id);
 
-     MultiSelection.add(cardIds);
 
-     Popup.close();
 
-   },
 
-   'click .js-toggle-watch-list'() {
 
-     const currentList = this;
 
-     const level = currentList.findWatcher(Meteor.userId()) ? null : 'watching';
 
-     Meteor.call('watch', 'list', currentList._id, level, (err, ret) => {
 
-       if (!err && ret) Popup.close();
 
-     });
 
-   },
 
-   'click .js-close-list'(event) {
 
-     event.preventDefault();
 
-     this.archive();
 
-     Popup.close();
 
-   },
 
-   'click .js-set-wip-limit': Popup.open('setWipLimit'),
 
-   'click .js-more': Popup.open('listMore'),
 
- });
 
- BlazeComponent.extendComponent({
 
-   applyWipLimit() {
 
-     const list = Template.currentData();
 
-     const limit = parseInt(
 
-       Template.instance()
 
-         .$('.wip-limit-value')
 
-         .val(),
 
-       10,
 
-     );
 
-     if (limit < list.cards().count() && !list.getWipLimit('soft')) {
 
-       Template.instance()
 
-         .$('.wip-limit-error')
 
-         .click();
 
-     } else {
 
-       Meteor.call('applyWipLimit', list._id, limit);
 
-       Popup.back();
 
-     }
 
-   },
 
-   enableSoftLimit() {
 
-     const list = Template.currentData();
 
-     if (
 
-       list.getWipLimit('soft') &&
 
-       list.getWipLimit('value') < list.cards().count()
 
-     ) {
 
-       list.setWipLimit(list.cards().count());
 
-     }
 
-     Meteor.call('enableSoftLimit', Template.currentData()._id);
 
-   },
 
-   enableWipLimit() {
 
-     const list = Template.currentData();
 
-     // Prevent user from using previously stored wipLimit.value if it is less than the current number of cards in the list
 
-     if (
 
-       !list.getWipLimit('enabled') &&
 
-       list.getWipLimit('value') < list.cards().count()
 
-     ) {
 
-       list.setWipLimit(list.cards().count());
 
-     }
 
-     Meteor.call('enableWipLimit', list._id);
 
-   },
 
-   isWipLimitSoft() {
 
-     return Template.currentData().getWipLimit('soft');
 
-   },
 
-   isWipLimitEnabled() {
 
-     return Template.currentData().getWipLimit('enabled');
 
-   },
 
-   wipLimitValue() {
 
-     return Template.currentData().getWipLimit('value');
 
-   },
 
-   events() {
 
-     return [
 
-       {
 
-         'click .js-enable-wip-limit': this.enableWipLimit,
 
-         'click .wip-limit-apply': this.applyWipLimit,
 
-         'click .wip-limit-error': Popup.open('wipLimitError'),
 
-         'click .materialCheckBox': this.enableSoftLimit,
 
-       },
 
-     ];
 
-   },
 
- }).register('setWipLimitPopup');
 
- Template.listMorePopup.events({
 
-   'click .js-delete': Popup.afterConfirm('listDelete', function() {
 
-     Popup.close();
 
-     this.allCards().map(card => Cards.remove(card._id));
 
-     Lists.remove(this._id);
 
-     Utils.goBoardId(this.boardId);
 
-   }),
 
- });
 
- BlazeComponent.extendComponent({
 
-   onCreated() {
 
-     this.currentList = this.currentData();
 
-     this.currentColor = new ReactiveVar(this.currentList.color);
 
-   },
 
-   colors() {
 
-     return listsColors.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.currentList.setColor(this.currentColor.get());
 
-           Popup.close();
 
-         },
 
-         'click .js-remove-color'() {
 
-           this.currentList.setColor(null);
 
-           Popup.close();
 
-         },
 
-       },
 
-     ];
 
-   },
 
- }).register('setListColorPopup');
 
 
  |