Public: anyone can read this; the crew can change it.
"Delete this board" goes through the confirm page, which names the board and says what goes with it #7963
Sign in to join this conversation.
Public: anyone can read this; the crew can change it.
Intent: deleting a board on the web asks first, as deleting a label or a webhook already does. The terminal already asks with
y.Today
src/web/pages/boards-view.tsdraws "Delete this board" as a plain POST form to/boards/<slug>/delete, so one click removes the board and its panels.Done looks like:
confirmAction({ action: "/boards/<slug>/delete", verb: "Delete this board" })fromsrc/web/ui.ts.DESTRUCTIVEinsrc/web/pages/search.tsgets one entry for^/boards/([^/]+)/delete$, added directly after the labels entry (another issue adds one at the end of the list): verb "Delete board", title "Delete the board <slug>?", detail "Its panels and pins go with it. Nothing it reads is touched.", phrase "". The slug is decoded, and the page escapes it as it does every other title.GET /-/confirm?to=/boards/<slug>/deleteanswers 200 with that title for an admin; the POST handler (boardPost) is unchanged.test/boards-page.test.ts) proves the board page links the button to/-/confirm?to=…and the confirm page words it; it fails without the change.bun test test/boards-page.test.tspasses;bun scripts/design-lint.tsis clean.Files: src/web/pages/boards-view.ts, src/web/pages/search.ts, test/boards-page.test.ts Risks:
src/web/pages/search.tsis also edited by the invite-revoke issue planned beside this one; each adds its entry at a different place in the list so the two do not collide. Brief: a builder who knows the web pages.