Pond sidebar with page list and sort modes #26

Closed
opened 2026-07-04 14:52:10 +02:00 by fable-5 · 1 comment
Collaborator

Context

The vision specifies a collapsible left sidebar listing the pond's pages with alphabetical, creation-date, or manual order.

Scope

Implement the sidebar for a selected pond: page list from GET /ponds/:id/pages (add the endpoint with sort support if missing), sort mode switch (alphabetical / created; manual arrives with #45) persisted in pond settings by the pond owner, active-page highlight, 'new page' button, collapse behavior from #4 refined (animation, keyboard shortcut), pond switcher dropdown in the top bar.

Acceptance criteria

  • sort modes reorder correctly (e2e fixture with 3 pages)
  • sort mode choice persists per pond and applies for every member
  • new-page flow: button → title prompt → editor opens
  • sidebar state (collapsed) is per-user (localStorage), sort mode is per-pond (server)

Technical notes

  • Vision §Bereiche, data-model.md (pond settings jsonb).

Dependencies

Depends on #21, #23, #25.

Size: ~1.5 days


Conventions: English code/comments, clear human-readable code, no hard-coded UI strings (ADR 0012, add de and en), permission checks only via the shared guard (docs/architecture/permissions.md). Read the referenced ADRs before starting.

## Context The vision specifies a collapsible left sidebar listing the pond's pages with alphabetical, creation-date, or manual order. ## Scope Implement the sidebar for a selected pond: page list from `GET /ponds/:id/pages` (add the endpoint with sort support if missing), sort mode switch (alphabetical / created; manual arrives with #45) persisted in pond settings by the pond owner, active-page highlight, 'new page' button, collapse behavior from #4 refined (animation, keyboard shortcut), pond switcher dropdown in the top bar. ## Acceptance criteria - [ ] sort modes reorder correctly (e2e fixture with 3 pages) - [ ] sort mode choice persists per pond and applies for every member - [ ] new-page flow: button → title prompt → editor opens - [ ] sidebar state (collapsed) is per-user (localStorage), sort mode is per-pond (server) ## Technical notes - Vision §Bereiche, data-model.md (pond settings jsonb). ## Dependencies Depends on #21, #23, #25. **Size**: ~1.5 days --- *Conventions: English code/comments, clear human-readable code, no hard-coded UI strings (ADR 0012, add `de` **and** `en`), permission checks only via the shared guard (docs/architecture/permissions.md). Read the referenced ADRs before starting.*
fable-5 added this to the M2 — Ponds & pages, single-user editing milestone 2026-07-04 14:52:10 +02:00
fable-5 added the
frontend
label 2026-07-04 14:52:10 +02:00
Collaborator

Implemented and deployed to Test + Int; pipeline green (commit 49beb45):

  • GET /ponds/:id/pages lists a pond's pages ordered by its persisted sidebarSort setting (alpha default, created; manual arrives with #45). Owner-only sort switch persists via the existing PATCH /ponds/:id.
  • Sidebar: page list, active-page highlight, inline "new page" flow (title → create → editor opens), collapse refined with a Ctrl/Cmd+\ shortcut and a smoother transition. Collapsed state stays per-user (localStorage); sort mode is per-pond (server).
  • Top-bar pond switcher; new /p/:pondSlug route gives it a landing spot that redirects to the pond's first page once loaded (or shows an empty-pond hint).
  • Tests: API e2e (sort ordering, access control, soft-delete exclusion) + a new apps/web/e2e/sidebar.spec.ts pack (sort reorder + persistence, active highlight, new-page flow, collapse shortcut/persistence), all green locally. pnpm lint/typecheck/i18n:check clean.

CI: CD build, CI lint/typecheck/test, auth e2e, deploy Test, smoke, promote Int — all successful.

Implemented and deployed to Test + Int; pipeline green (commit 49beb45): - `GET /ponds/:id/pages` lists a pond's pages ordered by its persisted `sidebarSort` setting (alpha default, created; manual arrives with #45). Owner-only sort switch persists via the existing `PATCH /ponds/:id`. - Sidebar: page list, active-page highlight, inline "new page" flow (title → create → editor opens), collapse refined with a Ctrl/Cmd+\\ shortcut and a smoother transition. Collapsed state stays per-user (localStorage); sort mode is per-pond (server). - Top-bar pond switcher; new `/p/:pondSlug` route gives it a landing spot that redirects to the pond's first page once loaded (or shows an empty-pond hint). - Tests: API e2e (sort ordering, access control, soft-delete exclusion) + a new `apps/web/e2e/sidebar.spec.ts` pack (sort reorder + persistence, active highlight, new-page flow, collapse shortcut/persistence), all green locally. `pnpm lint`/`typecheck`/`i18n:check` clean. CI: CD build, CI lint/typecheck/test, auth e2e, deploy Test, smoke, promote Int — all successful.
Sign in to join this conversation.
No project
No Assignees
2 Participants
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: stwaidele/dorfteich#26
No description provided.