Conversation
myabc
added this pull request to stack #25360
September 15, 2026 17:41
Documents batch gestures, mobility, menu scopes and collection moves. Updates the API reference, selection styles and preview attributes. Keeps implementation invariants in the README and links to the guide. Separates the documentation from the approved AGILE-392 scope. https://community.openproject.org/wp/AGILE-436
myabc
force-pushed
the
implementation/AGILE-436-batch-selection-docs
branch
from
September 15, 2026 18:56
465a708 to
016f6a2
Compare
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
Clarify the documented batch-size, item-type, and selection-state behavior before approval.
Get a fresh assessment by requesting another Copilot review.
Pull request overview
Updates sortable-list documentation for batch selection, movement, accessibility states, and action menus. No runtime behavior changes.
Changes:
- Documents batch gestures, mobility, movement, and destination actions.
- Expands API and collection-move guidance.
- Removes obsolete preview targets and updates README links.
File summaries
| File | Summary |
|---|---|
lookbook/previews/patterns/sortable_lists_preview/single_list.html.erb |
Removes obsolete divider target. |
lookbook/previews/patterns/sortable_lists_preview/sibling_lists.html.erb |
Removes obsolete divider target. |
lookbook/docs/40-styles/10-box-list-item-states.md.erb |
Documents selection and current-item states. |
lookbook/docs/20-patterns/46-drag-and-drop[api-reference].md.erb |
Documents batch-selection APIs and collection moves. |
lookbook/docs/20-patterns/44-drag-and-drop[sibling-lists].md.erb |
Documents batch gestures and movement. |
lookbook/docs/20-patterns/43-drag-and-drop[one-list].md.erb |
Updates action-menu guidance. |
lookbook/docs/20-patterns/42-drag-and-drop[implementation-overview].md.erb |
Updates sortable-list implementation terminology. |
frontend/src/stimulus/controllers/dynamic/sortable-lists/README.md |
Links implementation guidance to Lookbook. |
Review details
Suppressed comments (2)
lookbook/docs/20-patterns/44-drag-and-drop[sibling-lists].md.erb:134
- The orchestrator enforces one item type per batch: toggling an item of another type restarts the batch, and collection moves submit bare IDs to one endpoint. This consumer guide says Ctrl/Cmd-click can build a sparse batch across lists without stating that invariant, which makes cross-type batches appear supported.
Ctrl/Cmd-click toggles individual items and can build a sparse batch across
lists. The toggled item becomes the anchor even when deselected. Plain click
replaces the selection with the movable item while allowing its activation.
lookbook/docs/40-styles/10-box-list-item-states.md.erb:19
- This wording conflicts with the selection behavior documented immediately above and implemented by the controller: a plain click on another movable card both opens its details and replaces/collapses the current batch. Please distinguish the details-pane current state from the activation gesture, which can change batch membership.
An item can carry both states simultaneously when it is selected *and* currently shown in the detail panel. Keyboard focus is independent of both states. Opening another work package in the details pane does not change batch membership.
- Files reviewed: 8/8 changed files
- Comments generated: 2
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Comment on lines
+166
to
+167
| `maxBatchSize` limits move operations, not selection. Backlogs provisionally sets it to 50 | ||
| and independently enforces that limit on the server. The server authorizes |
| | `announcementScope` | string | `js.sortable_lists.selection` | translation scope for selection feedback | | ||
| | `moveAnnouncementScope` | string | `js.sortable_lists.announcements` | translation scope for move feedback | | ||
| | `selectionDescriptionId` | string | empty | shared description referenced by selected items' focus hosts through `aria-describedby` | | ||
| | `maxBatchSize` | number | `0` | maximum items per move; zero means no client limit; selection itself is not capped | |
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Ticket
https://community.openproject.org/wp/AGILE-436
What are you trying to accomplish?
Bring the Lookbook sortable-list guide and API reference up to date with batch selection, movement and action menus. This documentation was added after AGILE-392's approved scope and is now submitted separately for review.
What approach did you choose and why?
Documents gestures, range sessions, mobility, destination intersection, collection requests and menu scopes. Updates the selection style guide and removes obsolete preview attributes. The README retains implementation ownership and invariants and links to the consumer guide.
Depends on AGILE-362, AGILE-363 and AGILE-364; this PR is based on AGILE-364. AGILE-392 (#24858) is independent and targets dev.
The documentation patch is unchanged from the extracted commit c05cfa5. No runtime behavior changes.
Validation