8add005822
A non-Latin subject arrives as RFC 2047 encoded-words, which the send-log printed verbatim: unreadable, and one unbreakable run wide enough to push the Status column out of its card. Decode at journal time (UTF-8/ASCII; exotic charsets keep the raw header) and cap at 200 characters, then clip the column to one line with the full text in the tooltip so no subject can widen the row. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
33 lines
1.1 KiB
HTML
33 lines
1.1 KiB
HTML
{{define "deliveries_rows"}}
|
|
<div id="deliveries-rows" hx-get="/deliveries/rows?domain={{.FilterDomain}}&app={{.FilterApp}}&p={{.Page}}"
|
|
hx-trigger="every 5s" hx-swap="outerHTML">
|
|
{{if .Rows}}
|
|
<table>
|
|
<thead>
|
|
<tr><th>Time</th><th>Domain</th><th>App</th><th>From</th><th>To</th><th>Subject</th><th>Status</th></tr>
|
|
</thead>
|
|
<tbody>
|
|
{{range .Rows}}
|
|
<tr>
|
|
<td class="muted">{{.CreatedAt.Format "2006-01-02 15:04:05"}}</td>
|
|
<td>{{.Domain}}</td>
|
|
<td>{{.AppLogin}}</td>
|
|
<td>{{.From}}</td>
|
|
<td>{{.To}}</td>
|
|
<td class="subject"><span title="{{.Subject}}">{{.Subject}}</span></td>
|
|
<td>{{.Status}}</td>
|
|
</tr>
|
|
{{end}}
|
|
</tbody>
|
|
</table>
|
|
<p class="muted">
|
|
Page {{.Page}}{{if .LastPage}} of {{.LastPage}}{{end}}
|
|
{{if .HasPrev}} · <a href="/deliveries?domain={{.FilterDomain}}&app={{.FilterApp}}&p={{.PrevPage}}">← Newer</a>{{end}}
|
|
{{if .HasNext}} · <a href="/deliveries?domain={{.FilterDomain}}&app={{.FilterApp}}&p={{.NextPage}}">Older →</a>{{end}}
|
|
</p>
|
|
{{else}}
|
|
<p class="muted">No messages logged yet.</p>
|
|
{{end}}
|
|
</div>
|
|
{{end}}
|