feat(docs-theme): continuous org→project→docs tree inside My Projects #182
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/docs-project-tree-ux"
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?
The sidebar Browse section is folded into My Projects: each project
row is now a lazy treeitem that expands the project's own bounded
tree (GET /api/v1/docs/{org}/projects/{project}/tree) in place —
folders and documents nest directly under their project. Several
projects stay expanded at once with independent per-space caches
(state.trees keyed by org/project), persisted expansion sets
(dwb.tree.exp per space, dwb.tree.projects for the open rows) and a
30s freshness window.
Project rows: name opens the space overview ({root} page), twisty
expands, + opens the docsMenu New Document/Folder scoped to the
space root (write:pages only), ⋯ opens the project context menu
(Open overview, Copy link, Favorite project, Open in Portal, and
the authz-gated structure writes). Folder/document rows keep the
treeNode behavior and gain the same + affordance — its parent_path
is the node's own path. Unprovisioned projects render as unlinked
leaf rows.
Auto-expand resolves the document in view via the nav bindings
(projectForPath, rebound roots included) or the canonical path
shape, then opens org → project → ancestors so a direct URL,
bookmark or refresh lands expanded with the active document
highlighted. Org open-state honors the visitor's session choices.
Favorites fix: the 'No favorites yet' placeholder is appended only
after the document/project/repository lists populate — the union
empty-state can no longer render ahead of real favorites.
Also: verify-docs-theme step added to the test-deploy pipeline
(same served-fingerprint check as staging, resolved via the test
service uuid), roving tabindex restored across the merged tree, and
dead Browse-section styles removed from inject.css.
The sidebar Browse section is folded into My Projects: each project row is now a lazy treeitem that expands the project's own bounded tree (GET /api/v1/docs/{org}/projects/{project}/tree) in place — folders and documents nest directly under their project. Several projects stay expanded at once with independent per-space caches (state.trees keyed by org/project), persisted expansion sets (dwb.tree.exp per space, dwb.tree.projects for the open rows) and a 30s freshness window. Project rows: name opens the space overview ({root} page), twisty expands, + opens the docsMenu New Document/Folder scoped to the space root (write:pages only), ⋯ opens the project context menu (Open overview, Copy link, Favorite project, Open in Portal, and the authz-gated structure writes). Folder/document rows keep the treeNode behavior and gain the same + affordance — its parent_path is the node's own path. Unprovisioned projects render as unlinked leaf rows. Auto-expand resolves the document in view via the nav bindings (projectForPath, rebound roots included) or the canonical path shape, then opens org → project → ancestors so a direct URL, bookmark or refresh lands expanded with the active document highlighted. Org open-state honors the visitor's session choices. Favorites fix: the 'No favorites yet' placeholder is appended only after the document/project/repository lists populate — the union empty-state can no longer render ahead of real favorites. Also: verify-docs-theme step added to the test-deploy pipeline (same served-fingerprint check as staging, resolved via the test service uuid), roving tabindex restored across the merged tree, and dead Browse-section styles removed from inject.css.