Pond trash screen in the web UI (restore, purge, full-archive download) #319

Open
opened 2026-08-02 14:12:30 +02:00 by fable-5 · 0 comments
Collaborator

Context

The pond purge (#193) exists only as an API surface - the web UI has no screen for it. Because of that, #305 could not offer its pre-purge full archive anywhere in the UI; its api half is finished and tested.

Existing API, all Site-Admin-guarded:

  • GET /ponds/trash - list soft-deleted ponds
  • POST /ponds/:id/restore - restore a pond
  • DELETE /ponds/:id/purge - irreversible purge
  • GET /admin/trash/ponds/:id/archive and .../archive/preview - full archive before purge (#305): the preview reports totalPages vs includedPages so the admin learns about pages they cannot read BEFORE downloading

Scope

A Site-Admin screen (suggested: under /admin) that lists trashed ponds and offers per pond: restore, archive preview + download, and purge.

  • Purge is irreversible - the confirmation must say so and should follow the same pattern as the pond-deletion dialog (which already offers the archive since #305). Downloading the archive stays optional: the finality is stated, not enforced (#305 decision).
  • Show the archive-preview completeness numbers before the download, mirroring the pond-deletion flow.
  • i18n de+en.

Acceptance criteria

  • Trashed ponds are listed with name, deletion time, and actions (restore / archive / purge)
  • Restore returns the pond to the regular list without a page reload leaving stale state
  • Purge requires an explicit confirmation that names the pond and states irreversibility; the archive offer (with completeness preview) is presented in the same flow
  • Accessible per ADR 0017 (keyboard, names/roles, focus handling in the dialog via useModalFocus); screen added to apps/web/e2e/a11y.spec.ts
  • e2e coverage for the restore and purge flows

Non-goals

  • No changes to the api trash/purge/archive endpoints (they exist and are tested)
  • No re-import of archives (explicitly out of scope per #305)
## Context The pond purge (#193) exists only as an API surface - the web UI has no screen for it. Because of that, #305 could not offer its pre-purge full archive anywhere in the UI; its api half is finished and tested. **Existing API, all Site-Admin-guarded:** - `GET /ponds/trash` - list soft-deleted ponds - `POST /ponds/:id/restore` - restore a pond - `DELETE /ponds/:id/purge` - irreversible purge - `GET /admin/trash/ponds/:id/archive` and `.../archive/preview` - full archive before purge (#305): the preview reports `totalPages` vs `includedPages` so the admin learns about pages they cannot read BEFORE downloading ## Scope A Site-Admin screen (suggested: under `/admin`) that lists trashed ponds and offers per pond: restore, archive preview + download, and purge. - Purge is irreversible - the confirmation must say so and should follow the same pattern as the pond-deletion dialog (which already offers the archive since #305). Downloading the archive stays optional: the finality is stated, not enforced (#305 decision). - Show the archive-preview completeness numbers before the download, mirroring the pond-deletion flow. - i18n de+en. ## Acceptance criteria - [ ] Trashed ponds are listed with name, deletion time, and actions (restore / archive / purge) - [ ] Restore returns the pond to the regular list without a page reload leaving stale state - [ ] Purge requires an explicit confirmation that names the pond and states irreversibility; the archive offer (with completeness preview) is presented in the same flow - [ ] Accessible per ADR 0017 (keyboard, names/roles, focus handling in the dialog via `useModalFocus`); screen added to `apps/web/e2e/a11y.spec.ts` - [ ] e2e coverage for the restore and purge flows ## Non-goals - No changes to the api trash/purge/archive endpoints (they exist and are tested) - No re-import of archives (explicitly out of scope per #305)
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 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#319
No description provided.