feat(docs-theme): dialogs, context menus and toasts for tree operations #179

Merged
haydar merged 1 commit from feat/docs-ui-polish into develop 2026-10-29 23:35:27 +00:00
Member

Replace every window.prompt/alert/confirm in the docs-workspace
sidebar with token-styled, focus-managed primitives:

  • docsDialog(): modal with labelled fields, inline validation, busy
    state for async submits, Escape/Enter handling and a focus trap.
    New document/folder creation now asks for a name plus an explicit
    Location (parent path) select; delete confirm names the page and
    spells out the recycle-bin consequence. Danger dialogs focus
    Cancel by default.
  • docsMenu(): positioned context menu with roving arrow-key focus,
    Home/End, Escape and outside-press dismissal, focus restoration.
  • docsToast(): transient success/error notifications; a sessionStorage
    queue replays confirmations across the full-page navigations that
    create/delete still perform.

Every tree row gains a '...' affordance (hover/focus revealed, faint on
touch), a right-click handler, and ContextMenu/Shift+F10 keyboard
access. Folder rows offer New document/subfolder/Open; document rows
add Edit, Favorites toggle, Copy link and View history; New/Delete are
hidden unless the project space grants write:pages/delete:pages and
the page is unprotected. 'New document here' posts the folder's own
path as parent_path rather than deriving it from the active page.

Parent documents keep working: the row click opens the document while
the twisty alone expands/collapses. Page history is delegated to the
native Page History rail control (Wiki.js 3 has no /_history route),
including across the navigation to another document.

Replace every window.prompt/alert/confirm in the docs-workspace sidebar with token-styled, focus-managed primitives: - docsDialog(): modal with labelled fields, inline validation, busy state for async submits, Escape/Enter handling and a focus trap. New document/folder creation now asks for a name plus an explicit Location (parent path) select; delete confirm names the page and spells out the recycle-bin consequence. Danger dialogs focus Cancel by default. - docsMenu(): positioned context menu with roving arrow-key focus, Home/End, Escape and outside-press dismissal, focus restoration. - docsToast(): transient success/error notifications; a sessionStorage queue replays confirmations across the full-page navigations that create/delete still perform. Every tree row gains a '...' affordance (hover/focus revealed, faint on touch), a right-click handler, and ContextMenu/Shift+F10 keyboard access. Folder rows offer New document/subfolder/Open; document rows add Edit, Favorites toggle, Copy link and View history; New/Delete are hidden unless the project space grants write:pages/delete:pages and the page is unprotected. 'New document here' posts the folder's own path as parent_path rather than deriving it from the active page. Parent documents keep working: the row click opens the document while the twisty alone expands/collapses. Page history is delegated to the native Page History rail control (Wiki.js 3 has no /_history route), including across the navigation to another document.
feat(docs-theme): dialogs, context menus and toasts for tree operations
All checks were successful
ci / commit-trailers (pull_request) Successful in 12s
ci / secret-scan (pull_request) Successful in 14s
ci / release-tests (pull_request) Successful in 1m31s
ci / portal-frontend (pull_request) Successful in 38s
ci / integrations-js (pull_request) Successful in 29s
ci / openproject-spec (pull_request) Successful in 46s
ci / portal-php (pull_request) Successful in 6m34s
ci / openproject-rspec (pull_request) Successful in 5m19s
d98d30d313
Replace every window.prompt/alert/confirm in the docs-workspace
sidebar with token-styled, focus-managed primitives:

- docsDialog(): modal with labelled fields, inline validation, busy
  state for async submits, Escape/Enter handling and a focus trap.
  New document/folder creation now asks for a name plus an explicit
  Location (parent path) select; delete confirm names the page and
  spells out the recycle-bin consequence. Danger dialogs focus
  Cancel by default.
- docsMenu(): positioned context menu with roving arrow-key focus,
  Home/End, Escape and outside-press dismissal, focus restoration.
- docsToast(): transient success/error notifications; a sessionStorage
  queue replays confirmations across the full-page navigations that
  create/delete still perform.

Every tree row gains a '...' affordance (hover/focus revealed, faint on
touch), a right-click handler, and ContextMenu/Shift+F10 keyboard
access. Folder rows offer New document/subfolder/Open; document rows
add Edit, Favorites toggle, Copy link and View history; New/Delete are
hidden unless the project space grants write:pages/delete:pages and
the page is unprotected. 'New document here' posts the folder's own
path as parent_path rather than deriving it from the active page.

Parent documents keep working: the row click opens the document while
the twisty alone expands/collapses. Page history is delegated to the
native Page History rail control (Wiki.js 3 has no /_history route),
including across the navigation to another document.
haydar scheduled this pull request to auto merge when all checks succeed 2026-10-29 23:28:40 +00:00
haydar merged commit 22fe089fa7 into develop 2026-10-29 23:35:27 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
developing4all/devworkbase!179
No description provided.