diff options
author | Lauri Ojansivu <x@xet7.org> | 2017-02-03 01:39:31 +0200 |
---|---|---|
committer | Lauri Ojansivu <x@xet7.org> | 2017-02-03 01:39:31 +0200 |
commit | 1cf9b1be4e11e276e344088a63e5e0986da70250 (patch) | |
tree | 58bed7ea87109a9a733e09813bc81d4f5ad96989 /client/components/cards/checklists.js | |
parent | 70f92c6e0e3e15444cdb20987ce0544ec691d606 (diff) | |
parent | 59731af139b73f4b9cd8bd0bd0602ac272538b4f (diff) | |
download | wekan-1cf9b1be4e11e276e344088a63e5e0986da70250.tar.gz wekan-1cf9b1be4e11e276e344088a63e5e0986da70250.tar.bz2 wekan-1cf9b1be4e11e276e344088a63e5e0986da70250.zip |
Merge branch 'ckls' of https://github.com/lkisme/wekan into lkisme-ckls
Diffstat (limited to 'client/components/cards/checklists.js')
-rw-r--r-- | client/components/cards/checklists.js | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/client/components/cards/checklists.js b/client/components/cards/checklists.js new file mode 100644 index 00000000..b8113a54 --- /dev/null +++ b/client/components/cards/checklists.js @@ -0,0 +1,74 @@ +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); + }, + + 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'); |