Ticket #7734 (closed bug: fixed)

Opened 3 years ago

Last modified 2 months ago

Draggable: HTML IDs are removed when dragging to a Sortable

Reported by: azaozz Owned by: mikesherov
Priority: minor Milestone: 1.11.2
Component: ui.draggable Version: 1.8.13
Keywords: Cc: scott.gonzalez
Blocking: Blocked by:

Description

This was introduced in #4564 as a bug fix but seems to cause more problems than it fixes.

The patch removes the ID from the draggable element (but doesn't remove the IDs from any child elements) preventing proper handling of that element when it's dropped in the sortable. This breaks the Widgets page in WordPress among other things.

Furthermore this patch doesn't solve the problem of duplicate IDs. If there are child elements with IDs, they still create duplicates.

The solution imho would be to revert that patch, then update the documentation on using both draggable + sortable together. The draggable elements should be without IDs or the author should handle the duplicate IDs.

(Would have set the ticket type as regression if it was available.)

Change History

comment:1 Changed 3 years ago by azaozz

Related ticket on WprdPress' trac:  https://core.trac.wordpress.org/ticket/17952

comment:2 Changed 2 years ago by scott.gonzalez

  • Milestone changed from 1.9.0 to 2.0.0

comment:3 Changed 2 years ago by mikesherov

  • Cc scott.gonzalez added

Not sure whether this is something we intend on fixing. Scott, can you chime in here on the issue... mark as open if we're going to tackle this, or resolve as wontfix if we're not. Thanks!

comment:4 Changed 2 years ago by mikesherov

  • Summary changed from HTML IDs are removed when dragging an item from a Draggable to a Sortable to Draggable: HTML IDs are removed when dragging to a Sortable

comment:5 Changed 2 years ago by mikesherov

  • Type changed from bug to feature

comment:6 Changed 2 years ago by scott.gonzalez

  • Status changed from new to open
  • Type changed from feature to bug

This seems legit, I'd even say bug was correct since this is expected behavior and was implemented for a long time. I haven't dug into the code to figure out why clones are always used when connecting to sortables, but I can't think of any reason that should be necessary.

comment:7 Changed 2 months ago by mikesherov

  • Owner set to mikesherov
  • Status changed from open to assigned
  • Milestone changed from 2.0.0 to none

comment:8 Changed 2 months ago by Mike Sherov

  • Status changed from assigned to closed
  • Resolution set to fixed

Draggable: No cloning in connectToSortable and ensure correct position

Draggables now forcefully recalculate their position when dragged out of a sortable. Sortables now override draggable position when a draggable is dragged into it. Lastly, no longer remove sortable helper when dragging a draggable out, which allows us to not use a clone.

Fixes #7734 Fixes #8809 Closes gh-1322

Changeset: 95546c5d045f8055b121f24d3e35468e2a570c1b

comment:9 Changed 2 months ago by mikesherov

  • Milestone changed from none to 1.11.2
Note: See TracTickets for help on using tickets.