diff options
Diffstat (limited to 'client/components/cards/checklists.js')
-rw-r--r-- | client/components/cards/checklists.js | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/client/components/cards/checklists.js b/client/components/cards/checklists.js index bd9d275a..ba3384a9 100644 --- a/client/components/cards/checklists.js +++ b/client/components/cards/checklists.js @@ -20,24 +20,26 @@ function initSorting(items) { }); items.sortable('cancel'); const formerParent = ui.item.parents('.js-checklist-items'); - let checklist = Blaze.getData(parent.get(0)).checklist; + const checklist = Blaze.getData(parent.get(0)).checklist; const oldChecklist = Blaze.getData(formerParent.get(0)).checklist; if (oldChecklist._id !== checklist._id) { const currentItem = Blaze.getData(ui.item.get(0)).item; for (let i = 0; i < orderedItems.length; i++) { - let itemId = orderedItems[i]; + const itemId = orderedItems[i]; if (itemId !== currentItem._id) continue; - checklist.addItem(currentItem.title); - checklist = Checklists.findOne({_id: checklist._id}); - itemId = checklist._id + (checklist.newItemIndex - 1); - if (currentItem.finished) { - checklist.finishItem(itemId); - } - orderedItems[i] = itemId; - oldChecklist.removeItem(currentItem._id); + const newItem = { + _id: checklist.getNewItemId(), + title: currentItem.title, + sort: i, + isFinished: currentItem.isFinished, + }; + checklist.addFullItem(newItem); + orderedItems[i] = currentItem._id; + oldChecklist.removeItem(itemId); } + } else { + checklist.sortItems(orderedItems); } - checklist.sortItems(orderedItems); }, }); } |