Dodavanje base šablona, sidebara, topbara i dashboard stranice
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
package handler
|
||||
|
||||
import (
|
||||
"html/template"
|
||||
"net/http"
|
||||
|
||||
"ntech/internal/model"
|
||||
)
|
||||
|
||||
// Dashboard renderuje početnu stranicu
|
||||
func Dashboard(w http.ResponseWriter, r *http.Request) {
|
||||
// za sad koristimo testne podatke — kasnije će ići iz baze
|
||||
podaci := model.PodaciDashboarda{
|
||||
PodaciStranice: model.PodaciStranice{
|
||||
Stranica: "dashboard",
|
||||
NaslovStranice: "Dashboard",
|
||||
Tema: "tamna",
|
||||
NazivFirme: "NTech",
|
||||
Korisnik: "Admin",
|
||||
},
|
||||
BrojArtikala: 0,
|
||||
AktivniServisi: 0,
|
||||
ProdajaOvogMeseca: 0,
|
||||
KriticnaZaliha: 0,
|
||||
PoslednjiServisi: []model.StavkaServisa{},
|
||||
KriticneZalihe: []model.StavkaZalihe{},
|
||||
}
|
||||
|
||||
// učitavamo sve potrebne šablone zajedno
|
||||
tmpl, err := template.ParseFiles(
|
||||
"web/templates/teme/podrazumevana/base.html",
|
||||
"web/templates/komponente/sidebar.html",
|
||||
"web/templates/komponente/topbar.html",
|
||||
"web/templates/stranice/dashboard.html",
|
||||
)
|
||||
if err != nil {
|
||||
http.Error(w, "Greška pri učitavanju stranice", http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
|
||||
// renderujemo base šablon sa podacima
|
||||
if err := tmpl.ExecuteTemplate(w, "base", podaci); err != nil {
|
||||
http.Error(w, "Greška pri prikazu stranice", http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
package model
|
||||
|
||||
// StavkaServisa prikazuje jedan servisni nalog na dashboardu
|
||||
type StavkaServisa struct {
|
||||
Uredjaj string
|
||||
Status string
|
||||
BojaTacke string // "#16a34a" zelena, "#f59e0b" žuta, "#dc2626" crvena
|
||||
}
|
||||
|
||||
// StavkaZalihe prikazuje jedan artikal sa kritičnom zalihom
|
||||
type StavkaZalihe struct {
|
||||
Naziv string
|
||||
Kolicina int
|
||||
BojaTacke string
|
||||
}
|
||||
|
||||
// PodaciStranice su zajednički podaci koje svaka stranica prima
|
||||
type PodaciStranice struct {
|
||||
Stranica string // naziv aktivne stranice za sidebar
|
||||
NaslovStranice string // naslov u topbaru
|
||||
Tema string // aktivna tema: "tamna", "svetla", "zelena", "ljubicasta"
|
||||
NazivFirme string // naziv firme za logo zonu
|
||||
Logo string // putanja do logo fajla, opciono
|
||||
Korisnik string // ime korisnika za avatar
|
||||
}
|
||||
|
||||
// PodaciDashboarda su podaci specifični za dashboard stranicu
|
||||
type PodaciDashboarda struct {
|
||||
PodaciStranice
|
||||
BrojArtikala int
|
||||
AktivniServisi int
|
||||
ProdajaOvogMeseca int
|
||||
KriticnaZaliha int
|
||||
PoslednjiServisi []StavkaServisa
|
||||
KriticneZalihe []StavkaZalihe
|
||||
}
|
||||
Reference in New Issue
Block a user