From 91889b7711a3b276064d0b4913567bcd77a015d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dalibor=20Markovi=C4=87?= Date: Mon, 1 Jun 2026 01:45:24 +0200 Subject: [PATCH] =?UTF-8?q?Promena=20teme=20klikom=20na=20ta=C4=8Dkice=20u?= =?UTF-8?q?=20topbaru?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/ntech/main.go | 1 + internal/handler/podesavanja.go | 28 ++++++++++++++++++++++++++++ web/templates/komponente/topbar.html | 4 ++-- 3 files changed, 31 insertions(+), 2 deletions(-) diff --git a/cmd/ntech/main.go b/cmd/ntech/main.go index 98703d5..b12082b 100644 --- a/cmd/ntech/main.go +++ b/cmd/ntech/main.go @@ -56,6 +56,7 @@ func main() { r.Get("/dashboard", h.Dashboard) r.Get("/podesavanja", h.Podesavanja) r.Post("/podesavanja/sacuvaj", h.SacuvajPodesavanja) + r.Get("/tema/{tema}", h.PromeniTemu) log.Printf("NTech pokrenut na portu %s", port) err = http.ListenAndServe(":"+port, r) diff --git a/internal/handler/podesavanja.go b/internal/handler/podesavanja.go index 193281d..3bdf827 100644 --- a/internal/handler/podesavanja.go +++ b/internal/handler/podesavanja.go @@ -6,6 +6,8 @@ import ( "ntech/internal/db/sqlite" "ntech/internal/model" + + "github.com/go-chi/chi/v5" ) // PodaciPodesavanja su podaci za stranicu podešavanja @@ -89,3 +91,29 @@ func (h *Handler) SacuvajPodesavanja(w http.ResponseWriter, r *http.Request) { http.Redirect(w, r, "/podesavanja?sacuvano=1", http.StatusSeeOther) } + +// PromeniTemu menja aktivnu temu i vraća na prethodnu stranicu +func (h *Handler) PromeniTemu(w http.ResponseWriter, r *http.Request) { + tema := chi.URLParam(r, "tema") + + // proveravamo da li je validna tema + validne := map[string]bool{ + "tamna": true, "svetla": true, "zelena": true, "ljubicasta": true, + } + if !validne[tema] { + http.Redirect(w, r, "/dashboard", http.StatusSeeOther) + return + } + + if err := sqlite.SacuvajPodesavanje(r.Context(), h.DB, "tema", tema); err != nil { + http.Error(w, "Greška pri promeni teme", http.StatusInternalServerError) + return + } + + // vraćamo se na stranicu sa koje je kliknut dugmić + referer := r.Header.Get("Referer") + if referer == "" { + referer = "/dashboard" + } + http.Redirect(w, r, referer, http.StatusSeeOther) +} diff --git a/web/templates/komponente/topbar.html b/web/templates/komponente/topbar.html index 5e55e45..c3a7131 100644 --- a/web/templates/komponente/topbar.html +++ b/web/templates/komponente/topbar.html @@ -6,8 +6,8 @@
- - + +