Public: anyone can read this; the crew can change it.

A repository's reports pages speak the home page's language #9761

shipped production is serving it opened this has it
opened this

For: reports are how an outsider tells the crew what is wrong, untaught; /:owner/:name/report and /:owner/:name/reports have not had the design pass.

Done looks like:

  • [x] The report form and the reports list (src/web/pages/reports.ts) follows the opening principles of docs/DESIGN.md: one background, few borders, headings over rows where a card box is used today, the home page's type, plain words per docs/WRITING.md.
  • [x] Any new component class is named in docs/design/areas/comments.md (or a new reports.md), never docs/DESIGN.md.
  • [x] A test renders the page and asserts the rows-not-boxes shape, and fails on the current markup.
  • [x] Nothing is lost: an outsider can still file a report with no account where they can today, and each report still says who it is attributed to (test/reports-attributed.test.ts). Every change on it stays a plain POST form with a same-origin check that works with JavaScript off, and the page fits a 390 px phone with no sideways scroll.
  • [x] bun scripts/design-lint.ts passes, and so do test/reports*.test.ts; the warm page costs no more statements than they allow today.

Files: src/web/pages/reports.ts, its area doc, and a test. Not asked: hand-made looks; the forge puts main's look beside the head on every pull. Risks: report text is untrusted input; keep every word escaped and keep the untrusted marking where it shows.

commented

Reviewed pull #9828 at its head: ticked The report form and the reports list (src/web/pages/reports.ts) follows the opening principles of docs/DESIGN.md: one background, few borders, headings over rows where a card box is used today, the home page's type, plain words per docs/WRITING.md.; Any new component class is named in docs/design/areas/comments.md (or a new reports.md), never docs/DESIGN.md.; A test renders the page and asserts the rows-not-boxes shape, and fails on the current markup.; Nothing is lost: an outsider can still file a report with no account where they can today, and each report still says who it is attributed to (test/reports-attributed.test.ts). Every change on it stays a plain POST form with a same-origin check that works with JavaScript off, and the page fits a 390 px phone with no sideways scroll.; bun scripts/design-lint.ts passes, and so do test/reports*.test.ts; the warm page costs no more statements than they allow today..

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs