diff options
Diffstat (limited to 'internal/web/handlers_dashboard.go')
| -rw-r--r-- | internal/web/handlers_dashboard.go | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/internal/web/handlers_dashboard.go b/internal/web/handlers_dashboard.go index a1e0d89..506d28d 100644 --- a/internal/web/handlers_dashboard.go +++ b/internal/web/handlers_dashboard.go @@ -3,6 +3,8 @@ package web import ( "net/http" "strings" + + "github.com/gramanas/blogspace/internal/i18n" ) func (s *Server) handleBlogOverview(w http.ResponseWriter, r *http.Request) { @@ -23,20 +25,23 @@ func (s *Server) handleBlogOverview(w http.ResponseWriter, r *http.Request) { } func (s *Server) handleSettingsForm(w http.ResponseWriter, r *http.Request) { - s.render(w, r, "dashboard/settings.html", nil) + s.render(w, r, "dashboard/settings.html", map[string]any{"languages": i18n.Languages()}) } func (s *Server) handleSettings(w http.ResponseWriter, r *http.Request) { blog := currentBlog(r) title := strings.TrimSpace(r.FormValue("title")) tagline := strings.TrimSpace(r.FormValue("tagline")) - if title == "" || len(title) > 120 || len(tagline) > 300 { - s.renderStatus(w, r, http.StatusBadRequest, "dashboard/settings.html", map[string]any{"error": "Title is required (max 120 chars); tagline max 300."}) + language := r.FormValue("language") + if title == "" || len(title) > 120 || len(tagline) > 300 || !i18n.Valid(language) { + s.renderStatus(w, r, http.StatusBadRequest, "dashboard/settings.html", + map[string]any{"languages": i18n.Languages(), "error": s.tr(r, "Title is required (max 120 chars); tagline max 300.")}) return } - if err := blogStore(r).UpdateSettings(r.Context(), title, tagline); err != nil { + if err := blogStore(r).UpdateSettings(r.Context(), title, tagline, language); err != nil { s.serverError(w, err) return } - redirectOK(w, r, "/b/"+blog.Subdomain+"/settings", "Saved. Refresh your blog to see it.") + // The flash speaks the language just chosen, not the one the form was in. + redirectOK(w, r, "/b/"+blog.Subdomain+"/settings", i18n.T(language, "Saved. Refresh your blog to see it.")) } |
