feat(web): editor navigation returns to its origin, hidden pages orient in the tree, page actions on the page #154
No reviewers
Labels
No labels
bug
enhancement
needs-triage
ready-for-agent
ready-for-human
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Cloonar/deckle!154
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "afk/149"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #149
What changes
returnchain: a validatedreturnquery parameter records the view each more detailed view was opened from. The helpers areparseReturn,readReturnandwithReturninweb/src/routing.ts, anduseReturninweb/src/returnnav.ts, which the shell provides throughReturnContext.hrefcarries it too), and the Properties button.//host,//page/en/x, backslashes and unknown modules are ignored.Back button in the page docheader, first in the row and labelled with its target. A hidden page with no
returnfalls back to its parent section's List. There is none for a visible page without areturn, and none in properties.Tree orientation: a page inside a
hideChildPagessection selects the section's row (styling andaria-current). Every navigation expands the selected row's ancestors and scrolls the row into view when it is off-screen.Breadcrumbs show titles with home first (
Home / News / Summer meetup). One sharedpathCrumbsbuilder serves the page and List modules. The Media module is unchanged.Page actions: one shared definition (
web/src/pageactions.ts) feeds three places:Rename in the List and the docheader asks for the title in a
RenameDialog. Each surface decides where it goes afterwards:return;return, else on the parent's List for a hidden page, else on the parent page.Delete dialog names the page by its type label ("Delete News item “Q2 results”?") and warns about descendants only when there are any.
No
scaffold/site/AGENTS.mdchange: this touches editor navigation only, as the issue states.Verification
make test: vitest 60 files, 1693 tests, all passing;go test ./...passes;go vet ./...is clean.harness serveon a site withharness add newsand a git remote, driven by Playwright with the system Chromium. Every acceptance flow in the issue passed, with no console errors apart from the expected local404 /api/host.returnpoints into the deleted subtree skips thatreturnand lands on the parent, so the editor never lands on a page that is gone.🤖 Generated with Claude Code
[autoland] verdict: pass
Verdict: PASS
ci / build-and-testgreen (run 137, 8m12s). Not re-run.Closes #149; single commit on top of currentmain(no conflict).returnhelpers besideparseRoute/buildRoute, the listed writers and readers, back button, hidden-page tree orientation and reveal, title breadcrumbs through onepathCrumbs, shared page actions (pageactions.ts) across tree, List and docheader, and the delete-dialog copy. No drive-by changes.parseReturnrejects other origins, schemes,//host,//page/en/x(checked before parsing), backslashes and unknown modules, all covered inrouting.test.ts. The repaired-route-has-no-query test is inrouterepair.test.ts.hideChildPagesandcreateparagraphs stay true.