inbound-antispam-panel: Inbound log, Why as a sheet; no Deny on a Postfix reject
Follows the two design commits before it (owner's decisions quoted there). Kit: a new component, Sheet / SheetRow (components.go), partials sheet_tag and sheet (components.html), its rules in panel.css as in theme.css, and its sample on the kit page next to status_tag. It is the browser's popover: no script. Inbound log: the Why column is gone; the decision tag opens a sheet with who decided, then either the filter's verdict and its symbols one a line (a detail the journal milter wrote) or the reply (a detail the tailer read from mail.log - it starts with its code), and the subject whole. The sheet's id is the journal row's. A row Postfix itself refused no longer links to the filter lists. Tests: the page fixture and view tests for the sheet's markup and content (TestWhyRows), the link rule, three Deny and two Allow on the mockup's six rows; e2e reads "Decided by" and "Reply" from the sheet and wants no sender link on the refused row. Seen: the fixture page with a sheet open, headless Edge at 1360 px - the same as the accepted drawing. Checked on the test server, uncommitted tree: go vet ./... ok, go test ./... ok (22 packages), make e2e ok. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -420,12 +420,14 @@ func userDeleteFixture() *UserDelete {
|
||||
func inLogFixture() *InLog {
|
||||
p := NewInLog(admin(), 90, []string{"lists.example.org", "acme.io"},
|
||||
InLogFilter{From: "2026-09-14", To: "2026-09-21"})
|
||||
var id int64
|
||||
row := func(clock, from, client, to, subject, decision, engine, detail string) InLogRow {
|
||||
at, err := time.Parse("2006-01-02 15:04:05", "2026-09-21 "+clock)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
return p.NewRow(InLogRowInput{At: at, From: from, Client: client, To: to, Subject: subject,
|
||||
id++
|
||||
return p.NewRow(InLogRowInput{ID: id, At: at, From: from, Client: client, To: to, Subject: subject,
|
||||
Decision: decision, Engine: engine, Detail: detail})
|
||||
}
|
||||
return p.WithRows([]InLogRow{
|
||||
|
||||
Reference in New Issue
Block a user