From 561450662c04732e1881b53e928554614e88f480 Mon Sep 17 00:00:00 2001 From: DonVoo Date: Mon, 13 Jul 2026 03:10:40 +0200 Subject: [PATCH] Auto-load selected source mailbox messages --- backend/00-router.go | 78 ++++++++++++++++++++++++++++++++++++-------- 1 file changed, 65 insertions(+), 13 deletions(-) diff --git a/backend/00-router.go b/backend/00-router.go index ec04817..13c0c42 100644 --- a/backend/00-router.go +++ b/backend/00-router.go @@ -6,6 +6,7 @@ import ( "errors" "fmt" "html" + "io" "net/http" "net/mail" "net/url" @@ -306,8 +307,10 @@ func emailBoxHandler(w http.ResponseWriter, r *http.Request) { switch kind { case "source": if r.Header.Get("HX-Request") == "true" { + selected := selectedSourceAccount(accounts, r.URL.Query().Get("source")) w.Header().Set("Content-Type", "text/html; charset=utf-8") - fmt.Fprint(w, renderEmailBoxSourcePane(accounts, r.URL.Query().Get("source"))) + fmt.Fprint(w, renderEmailBoxSourcePane(accounts, selected.Name)) + fmt.Fprintf(w, `
%s
`, renderInitialSourceMailboxList(selected)) return } renderSourceEmailBoxPage(w, r, accounts, r.URL.Query().Get("source")) @@ -847,6 +850,7 @@ func renderTransferPage(w http.ResponseWriter, r *http.Request, mode transferMod func renderSourceEmailBoxPage(w http.ResponseWriter, r *http.Request, accounts []Account, selected string) { user := CurrentUser(r) + selectedAccount := selectedSourceAccount(accounts, selected) w.Header().Set("Content-Type", "text/html; charset=utf-8") fmt.Fprintf(w, ` @@ -879,12 +883,12 @@ func renderSourceEmailBoxPage(w http.ResponseWriter, r *http.Request, accounts [
-
Nachrichten
Quell-Postfach waehlen.
+
%s
Nachricht waehlen.
`, - renderRibbonEmailBoxMenu("source"), renderRibbonTransferMenu(""), renderRibbonActions(false, user), renderEmailBoxSourcePane(accounts, selected)) + renderRibbonEmailBoxMenu("source"), renderRibbonTransferMenu(""), renderRibbonActions(false, user), renderEmailBoxSourcePane(accounts, selectedAccount.Name), renderInitialSourceMailboxList(selectedAccount)) } func renderTargetEmailBoxPage(w http.ResponseWriter, r *http.Request, accounts []Account) { @@ -936,15 +940,7 @@ func renderEmailBoxSourcePane(accounts []Account, selected string) string { b.WriteString(`
Quell-Postfach
Keine Quell-Postfaecher eingetragen.
`) return b.String() } - selectedAccount := sourceAccounts[0] - if selected != "" { - for _, a := range sourceAccounts { - if a.Name == selected { - selectedAccount = a - break - } - } - } + selectedAccount := selectedSourceAccount(accounts, selected) b.WriteString(`
Quell-Postfach