| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 | const subManager = new SubsManager();Template.boardListHeaderBar.events({  'click .js-open-archived-board'() {    Modal.open('archivedBoards');  },});Template.boardListHeaderBar.helpers({  templatesBoardId() {    return Meteor.user().getTemplatesBoardId();  },  templatesBoardSlug() {    return Meteor.user().getTemplatesBoardSlug();  },});BlazeComponent.extendComponent({  onCreated() {    Meteor.subscribe('setting');  },  boards() {    return Boards.find({      archived: false,      'members.userId': Meteor.userId(),      type: 'board',    }, { sort: ['title'] });  },  isStarred() {    const user = Meteor.user();    return user && user.hasStarred(this.currentData()._id);  },  hasOvertimeCards() {    subManager.subscribe('board', this.currentData()._id, false);    return this.currentData().hasOvertimeCards();  },  hasSpentTimeCards() {    subManager.subscribe('board', this.currentData()._id, false);    return this.currentData().hasSpentTimeCards();  },  isInvited() {    const user = Meteor.user();    return user && user.isInvitedTo(this.currentData()._id);  },  events() {    return [{      'click .js-add-board': Popup.open('createBoard'),      'click .js-star-board'(evt) {        const boardId = this.currentData()._id;        Meteor.user().toggleBoardStar(boardId);        evt.preventDefault();      },      'click .js-clone-board'(evt) {        Meteor.call('cloneBoard',          this.currentData()._id,          Session.get('fromBoard'),          (err, res) => {            if (err) {              this.setError(err.error);            } else {              Session.set('fromBoard', null);              Utils.goBoardId(res);            }          }        );        evt.preventDefault();      },      'click .js-archive-board'(evt) {        const boardId = this.currentData()._id;        Meteor.call('archiveBoard', boardId);        evt.preventDefault();      },      'click .js-accept-invite'() {        const boardId = this.currentData()._id;        Meteor.user().removeInvite(boardId);      },      'click .js-decline-invite'() {        const boardId = this.currentData()._id;        Meteor.call('quitBoard', boardId, (err, ret) => {          if (!err && ret) {            Meteor.user().removeInvite(boardId);            FlowRouter.go('home');          }        });      },    }];  },}).register('boardList');
 |