diff options
author | Lauri Ojansivu <x@xet7.org> | 2017-09-24 16:45:01 +0300 |
---|---|---|
committer | Lauri Ojansivu <x@xet7.org> | 2017-09-24 16:45:01 +0300 |
commit | d974311d9bc3befc750f631dca8bc6baf6c71cc1 (patch) | |
tree | 56bd31c36c1d68cfc92fccf932365d726baef338 /client | |
parent | 5f697eac0559710a68da11ebf85fca3ea5ca9a66 (diff) | |
parent | 802dc94363ac6e1fed963e1dd82cb3f6aa5166b0 (diff) | |
download | wekan-d974311d9bc3befc750f631dca8bc6baf6c71cc1.tar.gz wekan-d974311d9bc3befc750f631dca8bc6baf6c71cc1.tar.bz2 wekan-d974311d9bc3befc750f631dca8bc6baf6c71cc1.zip |
Merge branch 'GhassenRjab-feature/keep-state-checklist' into devel
Keep state of checklist items when moved to another checklist.
Thanks to GhassenRjab ! Related #876
Diffstat (limited to 'client')
-rw-r--r-- | client/components/cards/checklists.jade | 2 | ||||
-rw-r--r-- | client/components/cards/checklists.js | 24 |
2 files changed, 14 insertions, 12 deletions
diff --git a/client/components/cards/checklists.jade b/client/components/cards/checklists.jade index 7ecc5dd3..e1dd1d14 100644 --- a/client/components/cards/checklists.jade +++ b/client/components/cards/checklists.jade @@ -47,7 +47,7 @@ template(name="editChecklistItemForm") template(name="checklistItems") .checklist-items.js-checklist-items - each item in checklist.getItems + each item in checklist.getItemsSorted +inlinedForm(classNames="js-edit-checklist-item" item = item checklist = checklist) +editChecklistItemForm(type = 'item' item = item checklist = checklist) else 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); }, }); } |