package backend import ( "fmt" "net/http" ) func RegisterRoutes(mux *http.ServeMux) { mux.HandleFunc("/", homeHandler) mux.HandleFunc("/login", loginHandler) // Umzug (Konten pflegen + starten/beobachten) mux.HandleFunc("/accounts", accountsHandler) // TODO Codex (02/07) mux.HandleFunc("/accounts/save", accountSaveHandler) // TODO Codex mux.HandleFunc("/accounts/delete", accountDeleteHandler) // TODO Codex mux.HandleFunc("/accounts/test", accountTestHandler) // TODO Codex: Quelle+Ziel-Login pruefen mux.HandleFunc("/migrate/run", migrateRunHandler) // TODO Codex: RunMigration im Hintergrund mux.HandleFunc("/migrate/status", migrateStatusHandler) // TODO Codex: jobs-Fortschritt (HTMX-Poll) // Viewer (lokale mbox betrachten + weiterleiten) mux.HandleFunc("/view", viewerHandler) mux.HandleFunc("/view/message", messageHandler) mux.HandleFunc("/view/forward", forwardHandler) } // homeHandler rendert die Outlook-2013-Oberflaeche (Dreispalter). Der linke // Baum, die Nachrichtenliste und der Lesebereich werden per HTMX nachgeladen. func homeHandler(w http.ResponseWriter, r *http.Request) { // "active" ist die CSS-Klasse fuer den hervorgehobenen Reiter. Wenn Codex // weitere Seiten baut, jeweils den passenden Reiter aktiv setzen. renderShell(w, "active", `
Konto links waehlen oder unter „Postfaecher" anlegen.
`) } // renderShell ist das Grundgeruest im Outlook-2013-Look: // [ Ribbon: Umzug | Postfaecher | Betrachten | Weiterleiten | Einstellungen ] // [ Ordnerbaum (links) | Nachrichtenliste (mitte) | Lesebereich (rechts) ] func renderShell(w http.ResponseWriter, active, readingPane string) { w.Header().Set("Content-Type", "text/html; charset=utf-8") fmt.Fprintf(w, ` Mail-Graveyard
Mail-Graveyard
Nachrichten
Lesebereich
%s
`, active, readingPane) } // --- Stubs fuer die noch nicht gebauten Handler (TODO Codex) --- func accountsHandler(w http.ResponseWriter, r *http.Request) {} func accountSaveHandler(w http.ResponseWriter, r *http.Request) {} func accountDeleteHandler(w http.ResponseWriter, r *http.Request) {} func accountTestHandler(w http.ResponseWriter, r *http.Request) {} func migrateRunHandler(w http.ResponseWriter, r *http.Request) {} func migrateStatusHandler(w http.ResponseWriter, r *http.Request) {}