Files
zeitkort-web-golang/settings.go
T
2026-06-18 21:41:47 +01:00

49 lines
1.2 KiB
Go

package main
import (
"net/http"
"strconv"
)
type settingsView struct {
Cfg Config
Saved bool
Error string
Version string
}
func (s *Server) handleSettings(w http.ResponseWriter, r *http.Request) {
s.mu.Lock()
cfg := s.Cfg
s.mu.Unlock()
s.render(w, "settings_page", settingsView{Cfg: cfg, Version: Version})
}
func (s *Server) handleSettingsSave(w http.ResponseWriter, r *http.Request) {
r.ParseForm()
dueDays, _ := strconv.Atoi(r.FormValue("payment_terms_days"))
mvg, _ := strconv.ParseFloat(r.FormValue("mvg_percent"), 64)
s.mu.Lock()
// Web-only POC: settings edits stay in memory only and are reset with the
// rest of the POC state every 10 minutes. config.json is never rewritten.
s.Cfg.CompanyName = r.FormValue("company_name")
s.Cfg.CompanyAddress = r.FormValue("company_address")
s.Cfg.CompanyPhone = r.FormValue("company_phone")
s.Cfg.CompanyEmail = r.FormValue("company_email")
s.Cfg.CompanyWeb = r.FormValue("company_web")
s.Cfg.TaxID = r.FormValue("tax_id")
s.Cfg.BankInfo = r.FormValue("bank_info")
if dueDays > 0 {
s.Cfg.PaymentTermsDays = dueDays
}
if mvg > 0 {
s.Cfg.MVGPercent = mvg
}
cfg := s.Cfg
s.mu.Unlock()
s.render(w, "settings_page", settingsView{Cfg: cfg, Saved: true, Version: Version})
}