Clean mailbox preview rendering

This commit is contained in:
DonVoo 2026-07-13 07:46:07 +02:00
parent 647ce4bc90
commit 8823b431f4
2 changed files with 132 additions and 4 deletions

View file

@ -1167,10 +1167,10 @@ func renderSourceMailboxRead(account Account, folder string, index int, messages
msg, err := mail.ReadMessage(bytes.NewReader(raw))
var b strings.Builder
if err != nil {
renderReadPane(&b, "Quelle", account.Name, folder, "", index, "(unlesbar)", "", "", string(raw))
renderMailboxReadPane(&b, "Quelle", account.Name, folder, index, "(unlesbar)", "", "", string(raw))
return b.String()
}
renderReadPane(&b, "Quelle", account.Name, folder, "", index,
renderMailboxReadPane(&b, "Quelle", account.Name, folder, index,
decodeHeader(msg.Header.Get("Subject")),
decodeHeader(msg.Header.Get("From")),
decodeHeader(msg.Header.Get("Date")),
@ -1354,10 +1354,10 @@ func renderTargetMailboxRead(account Account, folder string, index int, messages
msg, err := mail.ReadMessage(bytes.NewReader(raw))
var b strings.Builder
if err != nil {
renderReadPane(&b, "Ziel", account.Name, folder, "", index, "(unlesbar)", "", "", string(raw))
renderMailboxReadPane(&b, "Ziel", account.Name, folder, index, "(unlesbar)", "", "", string(raw))
return b.String()
}
renderReadPane(&b, "Ziel", account.Name, folder, "", index,
renderMailboxReadPane(&b, "Ziel", account.Name, folder, index,
decodeHeader(msg.Header.Get("Subject")),
decodeHeader(msg.Header.Get("From")),
decodeHeader(msg.Header.Get("Date")),
@ -1366,6 +1366,15 @@ func renderTargetMailboxRead(account Account, folder string, index int, messages
return b.String()
}
func renderMailboxReadPane(w io.Writer, title, account, folder string, index int, subject, from, date, body string) {
if subject == "" {
subject = "(ohne Betreff)"
}
fmt.Fprintf(w, `<div class="pane-head mode-head"><span class="mode-label">%s</span></div>`, html.EscapeString(title))
fmt.Fprintf(w, `<div class="read-body"><div class="read-head"><h1 class="read-subject">%s</h1><div class="read-meta">Von: %s<br>Datum: %s<br>Postfach: %s / %s / #%d</div></div><pre class="read-pre">%s</pre></div>`,
html.EscapeString(subject), html.EscapeString(from), html.EscapeString(date), html.EscapeString(account), html.EscapeString(folder), index+1, html.EscapeString(body))
}
func accountsByTarget(accounts []Account) []Account {
seen := map[string]bool{}
out := make([]Account, 0, len(accounts))