Skip to content

[AGILE-436] Document batch selection in Lookbook - #25359

Draft
myabc wants to merge 1 commit into
implementation/AGILE-364-batch-action-menusfrom
implementation/AGILE-436-batch-selection-docs
Draft

myabc wants to merge 1 commit into
implementation/AGILE-364-batch-action-menusfrom
implementation/AGILE-436-batch-selection-docs

Conversation

@myabc

@myabc myabc commented Sep 15, 2026

Copy link
Copy Markdown
Contributor

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

  • Exact documentation patch preserved during extraction; git whitespace checks pass.
  • This remains a draft for a separate documentation review and rendered Lookbook QA.

@myabc
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
myabc force-pushed the implementation/AGILE-436-batch-selection-docs branch from 465a708 to 016f6a2 Compare September 15, 2026 18:56
@myabc
myabc requested a lite review from Copilot September 15, 2026 18:57

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 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

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants