Skip to content

Revert/undo a drop #280

@LarryBarker

Description

@LarryBarker

Have been working to handle an edge case where dropping an item fails. I am processing a request on the server side using onDrop and if the server throws an error, I would like to "undo" the drop so the item does not stick in the destination container, but effectively moves back to the container it was dragged from.

I looked at the only other issue similar to this, which was closed some time ago, but it doesn't appear to work. I have also tried detaching the item from the container it was dropped in, and then calling _super but this doesnt work either.

onDrop: function ($item, container, _super) {
            $.request('onDropItem', {
                error: function(jqXHR, textStatus, errorThrown) {
                    // revert/undo the drop here
                    _super($item, container.rootGroup.itemContainer);
            })
}

I believe container.rootGroup.itemContainer is a reference to the container the item was selected from? I thought calling _super() is what performs the actual drop?

Out of desperation, I thought maybe just using the same code from onDrop when it is successful, but using container.rootGroup.itemContainer would do it, but this hasn't worked either:

var $clonedItem = $("<li/>").css({ height: 0 });
                   $item.before($clonedItem);

                   $clonedItem.animate({ height: $item.height() });

                   $item.animate($clonedItem.position(), function () {
                       $clonedItem.detach();
                       _super($item, container.rootGroup.itemContainer);
                   });

Has anyone implemented this functionality before? Am I correct that container.rootGroup.itemContainer is a reference to the container the item originated from?

Any feedback is appreciated!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions