SortableJS / knockout-sortablejs

A Knockout.js binding to SortableJS.
21 stars 19 forks source link

Items are always cloned when moving between different sortables #7

Open patrickguenther opened 6 years ago

patrickguenther commented 6 years ago

The problem seems to be in knockout-sortable.js line 124:

moveItem(itemVM, removeOperation.collection, addOperation.collection, addOperation.event.clone, addOperation.event);

The fourth parameter seems to be the DOM-node of the hovering element when pulling an item from a list, but the function call expects a boolean value from options object that tells sortablejs whether or not the item should be cloned when moving to another list. Since a DOM node is a truthy value the items are always cloned. Since I don't use cloning elements in my code I hardcoded that line to

moveItem(itemVM, removeOperation.collection, addOperation.collection, /**addOperation.event.clone*/false, addOperation.event);

for now but it's not pretty.

carlstent commented 4 years ago

the fix doesn't work if option.pull is a function.

replace line on 159 to fix with:

var cloneable = typeof groupOption === 'object' && (typeof groupOption.pull === "function" ? groupOption.pull(e.to, e.from, clone, e) : groupOption.pull) === 'clone';