diff --git a/backend/08-viewer.go b/backend/08-viewer.go index c0336c0..3a361d2 100644 --- a/backend/08-viewer.go +++ b/backend/08-viewer.go @@ -18,7 +18,7 @@ import ( // Lesebereich. Optional Weiterleiten einzelner Mails per SMTP (09-smtp.go). func viewerHandler(w http.ResponseWriter, r *http.Request) { - account := r.URL.Query().Get("account") + account := resolveViewerAccount(r.URL.Query().Get("account"), r.URL.Query().Get("source")) folder := r.URL.Query().Get("folder") q := strings.TrimSpace(r.URL.Query().Get("q")) if account != "" && folder != "" { @@ -33,7 +33,7 @@ func viewerHandler(w http.ResponseWriter, r *http.Request) { } func messageHandler(w http.ResponseWriter, r *http.Request) { - account := r.URL.Query().Get("account") + account := resolveViewerAccount(r.URL.Query().Get("account"), r.URL.Query().Get("source")) folder := r.URL.Query().Get("folder") targetAccount := r.URL.Query().Get("target_account") index, err := strconv.Atoi(r.URL.Query().Get("index")) @@ -65,7 +65,7 @@ func messageHandler(w http.ResponseWriter, r *http.Request) { } func targetMessageHandler(w http.ResponseWriter, r *http.Request) { - account := r.URL.Query().Get("account") + account := resolveViewerAccount(r.URL.Query().Get("account"), r.URL.Query().Get("source")) folder := r.URL.Query().Get("folder") targetAccount := r.URL.Query().Get("target_account") index, err := strconv.Atoi(r.URL.Query().Get("index")) @@ -112,11 +112,12 @@ func renderViewerTree(w http.ResponseWriter) { continue } found = true - fmt.Fprintf(w, `
%s
`, html.EscapeString(sourceAccountLabel(account))) + source := sourceAccountLabel(account) + fmt.Fprintf(w, `
%s
`, html.EscapeString(source)) for _, path := range mboxes { folder := strings.TrimSuffix(filepath.Base(path), ".mbox") - fmt.Fprintf(w, `%s`, - urlEsc(account), urlEsc(folder), html.EscapeString(folder)) + fmt.Fprintf(w, `%s`, + urlEsc(source), urlEsc(folder), html.EscapeString(folder)) } } if !found { @@ -142,11 +143,11 @@ func renderMessageList(w http.ResponseWriter, account, folder, q string) { } fmt.Fprintf(w, `
%s / %s (%d)
`, html.EscapeString(sourceAccountLabel(account)), html.EscapeString(folder), len(filtered)) fmt.Fprintf(w, ``, html.EscapeString(account), html.EscapeString(folder), html.EscapeString(q)) +`, html.EscapeString(sourceAccountLabel(account)), html.EscapeString(folder), html.EscapeString(q)) for _, entry := range filtered { subject := entry.Subject if subject == "" { @@ -156,8 +157,8 @@ func renderMessageList(w http.ResponseWriter, account, folder, q string) { if from == "" { from = "(ohne Absender)" } - fmt.Fprintf(w, `%s%s%s`, - urlEsc(account), urlEsc(folder), entry.Index, + fmt.Fprintf(w, `%s%s%s`, + urlEsc(sourceAccountLabel(account)), urlEsc(folder), entry.Index, html.EscapeString(from), html.EscapeString(subject), html.EscapeString(entry.Date)) } if len(entries) == 0 { @@ -336,11 +337,11 @@ func renderTargetAccountSelect(account, folder, selected string, index int) stri fmt.Fprintf(&b, ` hx-get="/view/target" hx-target="#read-target" hx-swap="innerHTML" hx-trigger="change from:#target-account-select"`) } fmt.Fprintf(&b, `> - +