| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 | const subManager = new SubsManager();BlazeComponent.extendComponent({  onCreated() {    Meteor.subscribe('setting');  },  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');
 |