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, `>
-
+