pf_app
Go to file
Paul Trowbridge b4e7604dd1 Keep the selection on its rows when the sort moves them
A highlight is a rectangle of grid coordinates. Post a decrease on a
grid sorted by sales descending and the customer drops down the list,
while the highlight holds the coordinate and comes to rest over whoever
took that position. `slices` is value-based, so the panel goes on
writing to the customer it always meant -- the grid is the only thing
that lies, which is the worst place for the lie to be.

The rectangles are re-derived from the slices now rather than tracked:
after a post or an undo, sweep the grid the way a drag does
(slicesFromRegion, quietly) and keep the cells whose slice is still
selected. That also survives the column axis shifting, which it does on
almost every post -- a new segment column group moves every x by one.

- Bounded at 5,000 displayed rows. The sweep reads what the pivot shows,
  not the grain, so at any ordinary depth it is a handful; fully
  expanded it is the whole traversal and not worth a highlight.
- Past the bound, or on any failure, the highlight is cleared rather
  than left in place: losing it says "I don't know where it went", which
  is true, and leaving it says "it is here", which is not.
- A slice may now land on more cells than it did -- one that never named
  the segment column matches the customer under the old segment and
  under the adjustment's own. That is what the slice covers.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-23 22:18:52 -04:00
lib Isolate a slice on a blank dimension value instead of widening it 2026-09-22 12:21:06 -04:00
public Add UX mockup and update spec with navigation direction 2026-04-25 14:56:29 -04:00
routes Stamp a new adjustment with the version's own segment name 2026-09-23 09:38:29 -04:00
setup_sql Land on the forecast somebody chose, not the newest one 2026-09-22 08:34:46 -04:00
ui Keep the selection on its rows when the sort moves them 2026-09-23 22:18:52 -04:00
.env.example Put the app behind a login 2026-09-14 22:20:25 -04:00
.gitignore Refresh lockfiles and keep .env backups out of the tree 2026-09-16 17:45:58 -04:00
CLAUDE.md Document the nav, the admin gating, and what left the toolbar 2026-09-23 02:02:16 -04:00
install.sh Put the app behind a login 2026-09-14 22:20:25 -04:00
package-lock.json Refresh lockfiles and keep .env backups out of the tree 2026-09-16 17:45:58 -04:00
package.json Put the app behind a login 2026-09-14 22:20:25 -04:00
PERSPECTIVE.md Filter aggregates with the rest of the layout 2026-09-19 14:43:00 -04:00
pf_perspective_options.md Record DuckDB virtual-server spike findings; choose display-grain pre-aggregation 2026-08-17 21:47:55 -04:00
pf_spec.md Merge feature/static-grain: display-grain pre-aggregation 2026-09-16 18:08:20 -04:00
pf.sh Fix the territory commands' success message and menu order 2026-09-18 11:47:02 -04:00
server.js Clone a version's definition without running it 2026-09-21 10:23:35 -04:00