diff --git a/internal/handler/kes.go b/internal/handler/kes.go
index c6d1fe9..515809c 100644
--- a/internal/handler/kes.go
+++ b/internal/handler/kes.go
@@ -48,6 +48,16 @@ var standaloneIme = []string{
"prijava", "setup", "totp_provera", "prodaja_stampa", "servis_radni_nalog", "servis_otpremnica", "servis_revers", "servis_predracun", "servis_nalepnica", "servis_status_javni", "servis_garantni_list", "servis_eskalacioni_list", "fiskal_verifikacija", "popis_stampa",
}
+// standaloneExtraFajlovi su dodatni fajlovi (partial-i sa {{define}}) koje treba
+// parsirati uz standalone šablon — npr. zajedničko zaglavlje servisnih dokumenata,
+// koje se deli između revers/predračun/otpremnica/eskalacioni list.
+var standaloneExtraFajlovi = map[string][]string{
+ "servis_revers": {"web/templates/komponente/servis_zaglavlje.html"},
+ "servis_predracun": {"web/templates/komponente/servis_zaglavlje.html"},
+ "servis_otpremnica": {"web/templates/komponente/servis_zaglavlje.html"},
+ "servis_eskalacioni_list": {"web/templates/komponente/servis_zaglavlje.html"},
+}
+
// sablonskeFunkcije su pomoćne funkcije dostupne u svim šablonima.
// dict gradi mapu iz parova ključ/vrednost — koristi se da se jednom partialu
// prosledi više vrednosti (npr. {{template "x" (dict "ID" .ID "Lista" $.Lista)}}).
@@ -157,7 +167,8 @@ func KreirajKes(fsys fs.FS) (map[string]*template.Template, error) {
for _, ime := range standaloneIme {
// ime+".html" mora biti ime roota da bi Execute() pronašlo sadržaj fajla
- t, err := template.New(ime+".html").Funcs(sablonskeFunkcije).ParseFS(fsys, "web/templates/stranice/"+ime+".html")
+ fajlovi := append([]string{"web/templates/stranice/" + ime + ".html"}, standaloneExtraFajlovi[ime]...)
+ t, err := template.New(ime+".html").Funcs(sablonskeFunkcije).ParseFS(fsys, fajlovi...)
if err != nil {
return nil, fmt.Errorf("kes: %s: %w", ime, err)
}
@@ -219,7 +230,8 @@ func (h *Handler) renderujStandalone(w http.ResponseWriter, ime string, podaci a
} else {
var err error
// kao u kreirajKes: root mora biti ime+".html" i moraju biti registrovane šablonske funkcije
- if tmpl, err = template.New(ime+".html").Funcs(sablonskeFunkcije).ParseFS(h.TemplatesFS, "web/templates/stranice/"+ime+".html"); err != nil {
+ fajlovi := append([]string{"web/templates/stranice/" + ime + ".html"}, standaloneExtraFajlovi[ime]...)
+ if tmpl, err = template.New(ime+".html").Funcs(sablonskeFunkcije).ParseFS(h.TemplatesFS, fajlovi...); err != nil {
slog.Error("greška pri parsiranju šablona", "ime", ime, "error", err)
http.Error(w, "Greška pri učitavanju stranice", http.StatusInternalServerError)
return
diff --git a/web/templates/komponente/servis_zaglavlje.html b/web/templates/komponente/servis_zaglavlje.html
new file mode 100644
index 0000000..2b5d9cc
--- /dev/null
+++ b/web/templates/komponente/servis_zaglavlje.html
@@ -0,0 +1,36 @@
+{{define "zaglavljeFirma"}}
+
+
+ {{if .LogoPutanja}}
+

+ {{else}}
+
{{if .NazivFirme}}{{.NazivFirme}}{{else}}— naziv firme —{{end}}
+ {{end}}
+
+ {{if .Podnazlov}}{{.Podnazlov}}
{{end}}
+ {{if .Adresa}}{{.Adresa}}
{{end}}
+ {{if .Telefon}}Tel: {{telefon .Telefon}}
{{end}}
+ {{if .PIB}}PIB: {{.PIB}}{{end}}{{if .MaticniBroj}}{{if .PIB}} · {{end}}MB: {{.MaticniBroj}}{{end}}
+
+
+{{end}}
+
+{{define "zaglavljeKlijent"}}
+
+
+
Klijent
+ {{if .KlijentNaziv}}
+
{{.KlijentNaziv}}
+
+ {{if .Klijent}}
+ {{if .Klijent.Telefon}}Tel: {{telefon .Klijent.Telefon}}
{{end}}
+ {{if .Klijent.Email}}{{.Klijent.Email}}
{{end}}
+ {{if .Klijent.Mesto}}{{.Klijent.Mesto}}
{{end}}
+ {{if .Klijent.PIB}}PIB: {{.Klijent.PIB}}{{end}}
+ {{end}}
+
+ {{else}}
+
— klijent nije naveden —
+ {{end}}
+
+{{end}}
diff --git a/web/templates/stranice/servis_eskalacioni_list.html b/web/templates/stranice/servis_eskalacioni_list.html
index c7b9283..1ec2f1f 100644
--- a/web/templates/stranice/servis_eskalacioni_list.html
+++ b/web/templates/stranice/servis_eskalacioni_list.html
@@ -53,19 +53,7 @@
-
- {{if .LogoPutanja}}
-

- {{else}}
-
{{if .NazivFirme}}{{.NazivFirme}}{{else}}— naziv firme —{{end}}
- {{end}}
-
- {{if .Podnazlov}}{{.Podnazlov}}
{{end}}
- {{if .Adresa}}{{.Adresa}}
{{end}}
- {{if .Telefon}}Tel: {{telefon .Telefon}}
{{end}}
- {{if .PIB}}PIB: {{.PIB}}{{end}}{{if .MaticniBroj}}{{if .PIB}} · {{end}}MB: {{.MaticniBroj}}{{end}}
-
-
+ {{template "zaglavljeFirma" .}}
{{if .Barkod}}

{{end}}
Eskalacioni list — praćenje rokova
diff --git a/web/templates/stranice/servis_otpremnica.html b/web/templates/stranice/servis_otpremnica.html
index e7158b2..79d4d1b 100644
--- a/web/templates/stranice/servis_otpremnica.html
+++ b/web/templates/stranice/servis_otpremnica.html
@@ -83,37 +83,8 @@
-
-
- {{if .LogoPutanja}}
-

- {{else}}
-
{{if .NazivFirme}}{{.NazivFirme}}{{else}}— naziv firme —{{end}}
- {{end}}
-
- {{if .Podnazlov}}{{.Podnazlov}}
{{end}}
- {{if .Adresa}}{{.Adresa}}
{{end}}
- {{if .Telefon}}Tel: {{telefon .Telefon}}
{{end}}
- {{if .PIB}}PIB: {{.PIB}}{{end}}{{if .MaticniBroj}}{{if .PIB}} · {{end}}MB: {{.MaticniBroj}}{{end}}
-
-
-
-
-
Klijent
- {{if .KlijentNaziv}}
-
{{.KlijentNaziv}}
-
- {{if .Klijent}}
- {{if .Klijent.Telefon}}Tel: {{telefon .Klijent.Telefon}}
{{end}}
- {{if .Klijent.Email}}{{.Klijent.Email}}
{{end}}
- {{if .Klijent.Mesto}}{{.Klijent.Mesto}}
{{end}}
- {{if .Klijent.PIB}}PIB: {{.Klijent.PIB}}{{end}}
- {{end}}
-
- {{else}}
-
— klijent nije naveden —
- {{end}}
-
+ {{template "zaglavljeFirma" .}}
+ {{template "zaglavljeKlijent" .}}
{{if .Barkod}}

{{end}}
diff --git a/web/templates/stranice/servis_predracun.html b/web/templates/stranice/servis_predracun.html
index 71959da..c9fb6db 100644
--- a/web/templates/stranice/servis_predracun.html
+++ b/web/templates/stranice/servis_predracun.html
@@ -77,20 +77,7 @@
-
-
- {{if .LogoPutanja}}
-

- {{else}}
-
{{if .NazivFirme}}{{.NazivFirme}}{{else}}— naziv firme —{{end}}
- {{end}}
-
- {{if .Podnazlov}}{{.Podnazlov}}
{{end}}
- {{if .Adresa}}{{.Adresa}}
{{end}}
- {{if .Telefon}}Tel: {{telefon .Telefon}}
{{end}}
- {{if .PIB}}PIB: {{.PIB}}{{end}}{{if .MaticniBroj}}{{if .PIB}} · {{end}}MB: {{.MaticniBroj}}{{end}}
-
-
+ {{template "zaglavljeFirma" .}}
@@ -103,23 +90,7 @@
{{if .QRKod}}

{{end}}
-
-
-
Klijent
- {{if .KlijentNaziv}}
-
{{.KlijentNaziv}}
-
- {{if .Klijent}}
- {{if .Klijent.Telefon}}Tel: {{telefon .Klijent.Telefon}}
{{end}}
- {{if .Klijent.Email}}{{.Klijent.Email}}
{{end}}
- {{if .Klijent.Mesto}}{{.Klijent.Mesto}}
{{end}}
- {{if .Klijent.PIB}}PIB: {{.Klijent.PIB}}{{end}}
- {{end}}
-
- {{else}}
-
— klijent nije naveden —
- {{end}}
-
+ {{template "zaglavljeKlijent" .}}
diff --git a/web/templates/stranice/servis_revers.html b/web/templates/stranice/servis_revers.html
index cbae051..f2e6b3b 100644
--- a/web/templates/stranice/servis_revers.html
+++ b/web/templates/stranice/servis_revers.html
@@ -75,20 +75,7 @@
-
-
- {{if .LogoPutanja}}
-

- {{else}}
-
{{if .NazivFirme}}{{.NazivFirme}}{{else}}— naziv firme —{{end}}
- {{end}}
-
- {{if .Podnazlov}}{{.Podnazlov}}
{{end}}
- {{if .Adresa}}{{.Adresa}}
{{end}}
- {{if .Telefon}}Tel: {{telefon .Telefon}}
{{end}}
- {{if .PIB}}PIB: {{.PIB}}{{end}}{{if .MaticniBroj}}{{if .PIB}} · {{end}}MB: {{.MaticniBroj}}{{end}}
-
-
+ {{template "zaglavljeFirma" .}}
{{if .Barkod}}

{{end}}
@@ -99,23 +86,7 @@
Predviđen rok: {{.Nalog.PredvidjenDatum.Format "02.01.2006."}}
{{end}}
-
-
-
Klijent
- {{if .KlijentNaziv}}
-
{{.KlijentNaziv}}
-
- {{if .Klijent}}
- {{if .Klijent.Telefon}}Tel: {{telefon .Klijent.Telefon}}
{{end}}
- {{if .Klijent.Email}}{{.Klijent.Email}}
{{end}}
- {{if .Klijent.Mesto}}{{.Klijent.Mesto}}
{{end}}
- {{if .Klijent.PIB}}PIB: {{.Klijent.PIB}}{{end}}
- {{end}}
-
- {{else}}
-
— klijent nije naveden —
- {{end}}
-
+ {{template "zaglavljeKlijent" .}}