| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 | BlazeComponent.extendComponent({  addChecklist(event) {    event.preventDefault();    const textarea = this.find('textarea.js-add-checklist-item');    const title = textarea.value.trim();    const cardId = this.currentData().cardId;    Checklists.insert({      cardId,      title,    });  },  addChecklistItem(event) {    event.preventDefault();    const textarea = this.find('textarea.js-add-checklist-item');    const title = textarea.value.trim();    const checklist = this.currentData().checklist;    checklist.addItem(title);  },  editChecklist(event) {    event.preventDefault();    const textarea = this.find('textarea.js-edit-checklist-item');    const title = textarea.value.trim();    const checklist = this.currentData().checklist;    checklist.setTitle(title);  },  canModifyCard() {    return Meteor.user() && Meteor.user().isBoardMember() && !Meteor.user().isCommentOnly();  },  editChecklistItem(event) {    event.preventDefault();    const textarea = this.find('textarea.js-edit-checklist-item');    const title = textarea.value.trim();    const itemId = this.currentData().item._id;    const checklist = this.currentData().checklist;    checklist.editItem(itemId, title);  },  deleteItem() {    const checklist = this.currentData().checklist;    const item = this.currentData().item;    if (checklist && item && item._id) {      checklist.removeItem(item._id);    }  },  deleteChecklist() {    const checklist = this.currentData().checklist;    if (checklist && checklist._id) {      Checklists.remove(checklist._id);    }  },  pressKey(event) {    //If user press enter key inside a form, submit it, so user doesn't have to leave keyboard to submit a form.    if (event.keyCode === 13) {      event.preventDefault();      const $form = $(event.currentTarget).closest('form');      $form.find('button[type=submit]').click();    }  },  events() {    return [{      'submit .js-add-checklist': this.addChecklist,      'submit .js-edit-checklist-title': this.editChecklist,      'submit .js-add-checklist-item': this.addChecklistItem,      'submit .js-edit-checklist-item': this.editChecklistItem,      'click .js-delete-checklist-item': this.deleteItem,      'click .js-delete-checklist': this.deleteChecklist,      keydown: this.pressKey,    }];  },}).register('checklists');Template.itemDetail.helpers({  canModifyCard() {    return Meteor.user() && Meteor.user().isBoardMember() && !Meteor.user().isCommentOnly();  },});BlazeComponent.extendComponent({  toggleItem() {    const checklist = this.currentData().checklist;    const item = this.currentData().item;    if (checklist && item && item._id) {      checklist.toggleItem(item._id);    }  },  events() {    return [{      'click .item .check-box': this.toggleItem,    }];  },}).register('itemDetail');
 |