-
-
@robin your preference?
Suggested fix
Prefer both (order of preference):
- Narrow drag handle to the grip (e.g.
.drag-indicator) so Edit/Delete/toggle are outside the handle. - Extend
SortBehaviorto pass jQuery UIcancel, with a sensible default includinga, button, …, .no-drag, so taps on interactive controls never start sortable/drag while the rest of the row/card remains draggable.
Optional: slightly increase
distanceon touch-heavy UIs. - Narrow drag handle to the grip (e.g.
-
Option 1 works better for me especially on a touch device
-
@wh work on this, adopt option 1
-
@robin Adopted option 1 as requested — narrowed the drag handle from
.card-headerto.drag-indicatoracross all five card-based sortable pages:- WorkspaceSpecsPage
- JobExecutorsPage
- WorkspaceProvisionersPage
- BranchProtectionsPage
- TagProtectionsPage
This ensures taps on Edit/Delete/toggle links always register on touch devices while reorder still works from the grip icon. Please review: pr #91
-
-
State changed as build OD-7846 is successful
-
OneDev
changed state to 'Closed' 2 days ago
Previous Value Current Value Open
Closed
-
@robin I can confirm this is working on my phone now. Thanks very much.
| Type |
Improvement
|
| Priority |
Normal
|
| Assignee | |
| Labels |
No labels
|
Issue Votes (0)
Problem
On Android Chrome/Edge (and likely other touch browsers), tapping Edit/Delete/toggle controls inside jQuery UI sortable items often fails or needs many retries. Confirmed on Project Settings → Workspace Spec: the whole
.card-headeris the sortable handle (ui-sortable-handle), and action controls are<a>elements inside it.Reported / diagnosed in #2897.
Example markup (from reporter):
Code touchpoint for this page:
WorkspaceSpecsPage.java:new SortBehavior() { … }.items("li.spec").handle(".card-header")WorkspaceSpecPanel.html(edit/delete/toggle links live in the header)Same pattern exists elsewhere (e.g. workspace provisioners, other card/table sortables where the handle overlaps action links, or whole rows are sortable with no dedicated grip).
Root cause
cancelisinput,textarea,button,select,option— links (a) are not cancelled, so drag can start on edit/delete links.SortBehaviorsupportshandle/items/distancebut has nocancelAPI; many call sites use a broad handle (or none).clickonce anytouchmoveoccurs — common on Android even for careful taps.Suggested fix
Prefer both (order of preference):
.drag-indicator) so Edit/Delete/toggle are outside the handle.SortBehaviorto pass jQuery UIcancel, with a sensible default includinga, button, …, .no-drag, so taps on interactive controls never start sortable/drag while the rest of the row/card remains draggable.Optional: slightly increase
distanceon touch-heavy UIs.Acceptance criteria
On Android Chrome/Edge:
SortBehaviorsites that put actions inside handles or whole-row sortables (settings tables, build-spec lists, board-related sortables as applicable).