diff --git a/src/web/RecipeWaiter.js b/src/web/RecipeWaiter.js index a985c2e4..17ced77e 100755 --- a/src/web/RecipeWaiter.js +++ b/src/web/RecipeWaiter.js @@ -76,21 +76,25 @@ RecipeWaiter.prototype.initialiseOperationDragNDrop = function() { /** * Creates a drag-n-droppable seed list of operations. * - * @param {element} listEl - The list the initialise + * @param {element} listEl - The list to initialise */ RecipeWaiter.prototype.createSortableSeedList = function(listEl) { Sortable.create(listEl, { group: { name: "recipe", pull: "clone", - put: false + put: false, }, sort: false, setData: function(dataTransfer, dragEl) { dataTransfer.setData("Text", dragEl.textContent); }, onStart: function(evt) { + // Removes popover element and event bindings from the dragged operation but not the + // event bindings from the one left in the operations list. Without manually removing + // these bindings, we cannot re-initialise the popover on the stub operation. $(evt.item).popover("destroy"); + $(evt.clone).off(".popover").removeData("bs.popover"); evt.item.setAttribute("data-toggle", "popover-disabled"); }, onEnd: this.opSortEnd.bind(this)