Repository navigation
Conversation
myabc
added this pull request to stack #25836
October 24, 2026 05:05
|
Warning Flaky specs
🤖 Ask Copilot to investigateCopy the prompt below into a new comment on this PR to delegate the investigation to GitHub Copilot. It will look into the flakiness and open a separate pull request with you as reviewer. |
myabc
force-pushed
the
feature/dream-938-row-positions
branch
from
October 24, 2026 05:59
b34ee4e to
ffedd3b
Compare
myabc
commented
Oct 24, 2026
myabc
commented
Oct 24, 2026
myabc
force-pushed
the
feature/dream-938-row-positions
branch
from
October 24, 2026 17:57
b5640d3 to
6ec3530
Compare
myabc
marked this pull request as ready for review
October 24, 2026 17:59
1 of 3 tasks
1 of 5 tasks
Open
1 of 3 tasks
myabc
force-pushed
the
feature/dream-938-row-positions
branch
from
October 26, 2026 03:52
6ec3530 to
ed11e52
Compare
Covers child-before-parent ordering with the parent both inside and outside the query window, plus the parent-before-child case. Adds the cache state accessor needed to exercise deferred insertion in the existing table harness. https://community.openproject.org/wp/DREAM-938
Adds validated pagination and group-prefix arithmetic for stable global body positions and a draft-agreement check that confirms the rendered rows follow those ordinals. Rejects contradictory, unsafe or negative metadata. https://community.openproject.org/wp/DREAM-938
Binds global positions to accepted render snapshots and validates the complete table before publishing index and count attributes. Includes structural rows, preserves collapsed gaps and clears unsupported or contradictory projections. Children-column expansions withdraw the family like other relation expansions. Staged drag moves repaint at once, so the family clears while a row is out of rank order and returns when a failed drop puts it back. A successful drop waits for a collection in the new order. Adds coverage for pagination, stale frames, group membership mismatch, nested tables, children-column expansion, staged drag moves and capability-off consumers. https://community.openproject.org/wp/DREAM-938
Repaints global positions after Angular header, totals and creation rows change exposure or content. Covers asynchronous schema updates, replacement tables, permissions and active creation input identity. https://community.openproject.org/wp/DREAM-938
Adds page-object helpers that assert the table's row count and every exposed row's index in document order, or that both are absent. The flat treegrid example now checks global positions including totals and Create, their removal while a children relation is expanded and their return once it collapses. https://community.openproject.org/wp/DREAM-938
Checks global positions for group headers, group sums, totals and Create in grouped mode, the stable gap left by a collapsed group and the positions restored on expanding it again. Also checks that hierarchy mode exposes no positions and that the empty-results table counts the header, empty message and Create rows. https://community.openproject.org/wp/DREAM-938
Adds pagination helpers for changing the page and the page size, and checks in both project and global scope that a row on page 2 keeps its query-wide position while the table count stays the same. https://community.openproject.org/wp/DREAM-938
Checks that a drop on a flat table brings global positions back once the reloaded query has rendered, and that a drop on an already manually sorted query persists the order which the next visit exposes with positions again. Transient states during a drop are covered by the Vitest lifetime and row-positions specs. https://community.openproject.org/wp/DREAM-938
myabc
force-pushed
the
feature/dream-938-row-positions
branch
from
October 26, 2026 14:32
ed11e52 to
866679a
Compare
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.
Note
This PR is stacked on #26288 (DREAM-885, treegrid semantics). Please review/merge that PR first.
Ticket
https://community.openproject.org/wp/DREAM-938
What are you trying to accomplish?
tl;dr for humans: Screen readers can now say "row 57 of 120" in flat and grouped tables, counted across pages and collapsed groups, so users know where they are in a long list.
Adds
aria-rowindex/aria-rowcountto flat and grouped tables. Positions are query-wide (page 2 keeps them), collapsed groups leave gaps instead of renumbering, and header, sums, totals, empty and creation rows count towards the total. Hierarchy mode follows in DREAM-941 (#26293);aria-posinset/aria-setsizewait for DREAM-860.What approach did you choose and why?
Pagination and group metadata are captured with each render and applied only when it commits. The whole projection is validated first; anything it cannot vouch for (unsupported modes, stale collections, contradictory groups, unknown rows) clears the attributes instead of guessing. Tables without keyboard navigation are unchanged.
Hints for dev review
AI involvement
Directed – I specified the requirements and AI implemented most of it; I validated via testing rather than a full line-by-line review.
Merge checklist