| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 | const subManager = new SubsManager();BlazeComponent.extendComponent({  boards() {    return Boards.find({      archived: false,      'members.userId': Meteor.userId(),    }, {      sort: ['title'],    });  },  isStarred() {    const user = Meteor.user();    return user && user.hasStarred(this.currentData()._id);  },  hasOvertimeCards() {    subManager.subscribe('board', this.currentData()._id);    return this.currentData().hasOvertimeCards();  },  hasSpentTimeCards() {    subManager.subscribe('board', this.currentData()._id);    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-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');
 |