Ispravke — bezbednost, CSS teme, handleri, sidebar, servis forma
This commit is contained in:
@@ -192,7 +192,7 @@ func (h *Handler) AdminProfil(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
podesavanja, _ := sqlite.DohvatiSvaPodesavanja(r.Context(), h.DB)
|
||||
ps := h.popuniPodaciStranice(r, podesavanja)
|
||||
ps.Stranica = "admin"
|
||||
ps.Stranica = "profil"
|
||||
ps.NaslovStranice = "Moj profil"
|
||||
|
||||
podaci := podaciAdminProfil{
|
||||
@@ -261,7 +261,7 @@ func (h *Handler) AdminTotpPokreni(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
ps := h.popuniPodaciStranice(r, podesavanja)
|
||||
ps.Stranica = "admin"
|
||||
ps.Stranica = "profil"
|
||||
ps.NaslovStranice = "Podesi 2FA"
|
||||
|
||||
podaci := podaciAdminProfil{
|
||||
@@ -294,7 +294,7 @@ func (h *Handler) AdminTotpAktivacija(w http.ResponseWriter, r *http.Request) {
|
||||
// ponovni prikaz sa greškom — regenerišemo isti tajnu
|
||||
podesavanja, _ := sqlite.DohvatiSvaPodesavanja(r.Context(), h.DB)
|
||||
ps := h.popuniPodaciStranice(r, podesavanja)
|
||||
ps.Stranica = "admin"
|
||||
ps.Stranica = "profil"
|
||||
ps.NaslovStranice = "Podesi 2FA"
|
||||
|
||||
// regenerišemo QR za već generisanu tajnu (korisnik je video ovaj QR)
|
||||
|
||||
@@ -30,7 +30,7 @@ func (h *Handler) Dashboard(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
if err := h.DB.QueryRowContext(ctx, `
|
||||
SELECT COUNT(*) FROM servisni_nalozi
|
||||
WHERE status NOT IN ('Završeno', 'Preuzeto')`,
|
||||
WHERE status != 'Završeno'`,
|
||||
).Scan(&aktivniServisi); err != nil {
|
||||
log.Printf("dashboard: aktivni servisi: %v", err)
|
||||
}
|
||||
|
||||
@@ -43,21 +43,15 @@ func (h *Handler) Dobavljaci(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
ps := h.popuniPodaciStranice(r, podesavanja)
|
||||
ps.Stranica = "dobavljaci"
|
||||
ps.NaslovStranice = "Dobavljači"
|
||||
podaci := PodaciDobavljaca{
|
||||
PodaciStranice: model.PodaciStranice{
|
||||
Stranica: "dobavljaci",
|
||||
NaslovStranice: "Dobavljači",
|
||||
Tema: podesavanja["tema"],
|
||||
NazivFirme: podesavanja["naziv_firme"],
|
||||
Podnazlov: podesavanja["podnazlov"],
|
||||
LogoTip: podesavanja["logo_tip"],
|
||||
LogoPutanja: podesavanja["logo_putanja"],
|
||||
Korisnik: "Admin",
|
||||
},
|
||||
Dobavljaci: dobavljaci,
|
||||
Pretraga: pretraga,
|
||||
Sacuvano: r.URL.Query().Get("sacuvano") == "1",
|
||||
Obrisan: r.URL.Query().Get("obrisan") == "1",
|
||||
PodaciStranice: ps,
|
||||
Dobavljaci: dobavljaci,
|
||||
Pretraga: pretraga,
|
||||
Sacuvano: r.URL.Query().Get("sacuvano") == "1",
|
||||
Obrisan: r.URL.Query().Get("obrisan") == "1",
|
||||
}
|
||||
|
||||
h.renderujTemplate(w, "dobavljaci", podaci)
|
||||
@@ -71,18 +65,12 @@ func (h *Handler) NoviDobavljac(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
ps := h.popuniPodaciStranice(r, podesavanja)
|
||||
ps.Stranica = "dobavljaci"
|
||||
ps.NaslovStranice = "Novi dobavljač"
|
||||
h.renderujFormuDobavljaca(w, PodaciFormeDobavljaca{
|
||||
PodaciStranice: model.PodaciStranice{
|
||||
Stranica: "dobavljaci",
|
||||
NaslovStranice: "Novi dobavljač",
|
||||
Tema: podesavanja["tema"],
|
||||
NazivFirme: podesavanja["naziv_firme"],
|
||||
Podnazlov: podesavanja["podnazlov"],
|
||||
LogoTip: podesavanja["logo_tip"],
|
||||
LogoPutanja: podesavanja["logo_putanja"],
|
||||
Korisnik: "Admin",
|
||||
},
|
||||
Izmena: false,
|
||||
PodaciStranice: ps,
|
||||
Izmena: false,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -96,20 +84,14 @@ func (h *Handler) SacuvajDobavljaca(w http.ResponseWriter, r *http.Request) {
|
||||
dobavljac, greska := parseFormuDobavljaca(r)
|
||||
if greska != "" {
|
||||
podesavanja, _ := sqlite.DohvatiSvaPodesavanja(r.Context(), h.DB)
|
||||
ps := h.popuniPodaciStranice(r, podesavanja)
|
||||
ps.Stranica = "dobavljaci"
|
||||
ps.NaslovStranice = "Novi dobavljač"
|
||||
h.renderujFormuDobavljaca(w, PodaciFormeDobavljaca{
|
||||
PodaciStranice: model.PodaciStranice{
|
||||
Stranica: "dobavljaci",
|
||||
NaslovStranice: "Novi dobavljač",
|
||||
Tema: podesavanja["tema"],
|
||||
NazivFirme: podesavanja["naziv_firme"],
|
||||
Podnazlov: podesavanja["podnazlov"],
|
||||
LogoTip: podesavanja["logo_tip"],
|
||||
LogoPutanja: podesavanja["logo_putanja"],
|
||||
Korisnik: "Admin",
|
||||
},
|
||||
Dobavljac: dobavljac,
|
||||
Greska: greska,
|
||||
Izmena: false,
|
||||
PodaciStranice: ps,
|
||||
Dobavljac: dobavljac,
|
||||
Greska: greska,
|
||||
Izmena: false,
|
||||
})
|
||||
return
|
||||
}
|
||||
@@ -142,19 +124,13 @@ func (h *Handler) IzmeniDobavljaca(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
ps := h.popuniPodaciStranice(r, podesavanja)
|
||||
ps.Stranica = "dobavljaci"
|
||||
ps.NaslovStranice = "Izmeni dobavljača"
|
||||
h.renderujFormuDobavljaca(w, PodaciFormeDobavljaca{
|
||||
PodaciStranice: model.PodaciStranice{
|
||||
Stranica: "dobavljaci",
|
||||
NaslovStranice: "Izmeni dobavljača",
|
||||
Tema: podesavanja["tema"],
|
||||
NazivFirme: podesavanja["naziv_firme"],
|
||||
Podnazlov: podesavanja["podnazlov"],
|
||||
LogoTip: podesavanja["logo_tip"],
|
||||
LogoPutanja: podesavanja["logo_putanja"],
|
||||
Korisnik: "Admin",
|
||||
},
|
||||
Dobavljac: *dobavljac,
|
||||
Izmena: true,
|
||||
PodaciStranice: ps,
|
||||
Dobavljac: *dobavljac,
|
||||
Izmena: true,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -175,20 +151,14 @@ func (h *Handler) SacuvajIzmeneDobavljaca(w http.ResponseWriter, r *http.Request
|
||||
if greska != "" {
|
||||
podesavanja, _ := sqlite.DohvatiSvaPodesavanja(r.Context(), h.DB)
|
||||
dobavljac.ID = id
|
||||
ps := h.popuniPodaciStranice(r, podesavanja)
|
||||
ps.Stranica = "dobavljaci"
|
||||
ps.NaslovStranice = "Izmeni dobavljača"
|
||||
h.renderujFormuDobavljaca(w, PodaciFormeDobavljaca{
|
||||
PodaciStranice: model.PodaciStranice{
|
||||
Stranica: "dobavljaci",
|
||||
NaslovStranice: "Izmeni dobavljača",
|
||||
Tema: podesavanja["tema"],
|
||||
NazivFirme: podesavanja["naziv_firme"],
|
||||
Podnazlov: podesavanja["podnazlov"],
|
||||
LogoTip: podesavanja["logo_tip"],
|
||||
LogoPutanja: podesavanja["logo_putanja"],
|
||||
Korisnik: "Admin",
|
||||
},
|
||||
Dobavljac: dobavljac,
|
||||
Greska: greska,
|
||||
Izmena: true,
|
||||
PodaciStranice: ps,
|
||||
Dobavljac: dobavljac,
|
||||
Greska: greska,
|
||||
Izmena: true,
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
@@ -32,20 +32,14 @@ func (h *Handler) Kategorije(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
ps := h.popuniPodaciStranice(r, podesavanja)
|
||||
ps.Stranica = "magacin"
|
||||
ps.NaslovStranice = "Kategorije"
|
||||
podaci := PodaciKategorija{
|
||||
PodaciStranice: model.PodaciStranice{
|
||||
Stranica: "magacin",
|
||||
NaslovStranice: "Kategorije",
|
||||
Tema: podesavanja["tema"],
|
||||
NazivFirme: podesavanja["naziv_firme"],
|
||||
Podnazlov: podesavanja["podnazlov"],
|
||||
LogoTip: podesavanja["logo_tip"],
|
||||
LogoPutanja: podesavanja["logo_putanja"],
|
||||
Korisnik: "Admin",
|
||||
},
|
||||
Kategorije: kategorije,
|
||||
Sacuvano: r.URL.Query().Get("sacuvano") == "1",
|
||||
Obrisana: r.URL.Query().Get("obrisana") == "1",
|
||||
PodaciStranice: ps,
|
||||
Kategorije: kategorije,
|
||||
Sacuvano: r.URL.Query().Get("sacuvano") == "1",
|
||||
Obrisana: r.URL.Query().Get("obrisana") == "1",
|
||||
}
|
||||
|
||||
h.renderujTemplate(w, "kategorije", podaci)
|
||||
|
||||
+47
-89
@@ -44,21 +44,15 @@ func (h *Handler) Klijenti(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
ps := h.popuniPodaciStranice(r, podesavanja)
|
||||
ps.Stranica = "klijenti"
|
||||
ps.NaslovStranice = "Klijenti"
|
||||
podaci := PodaciKlijenata{
|
||||
PodaciStranice: model.PodaciStranice{
|
||||
Stranica: "klijenti",
|
||||
NaslovStranice: "Klijenti",
|
||||
Tema: podesavanja["tema"],
|
||||
NazivFirme: podesavanja["naziv_firme"],
|
||||
Podnazlov: podesavanja["podnazlov"],
|
||||
LogoTip: podesavanja["logo_tip"],
|
||||
LogoPutanja: podesavanja["logo_putanja"],
|
||||
Korisnik: "Admin",
|
||||
},
|
||||
Klijenti: klijenti,
|
||||
Pretraga: pretraga,
|
||||
Sacuvano: r.URL.Query().Get("sacuvano") == "1",
|
||||
Obrisan: r.URL.Query().Get("obrisan") == "1",
|
||||
PodaciStranice: ps,
|
||||
Klijenti: klijenti,
|
||||
Pretraga: pretraga,
|
||||
Sacuvano: r.URL.Query().Get("sacuvano") == "1",
|
||||
Obrisan: r.URL.Query().Get("obrisan") == "1",
|
||||
}
|
||||
|
||||
h.renderujTemplate(w, "klijenti", podaci)
|
||||
@@ -72,18 +66,12 @@ func (h *Handler) NoviKlijent(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
ps := h.popuniPodaciStranice(r, podesavanja)
|
||||
ps.Stranica = "klijenti"
|
||||
ps.NaslovStranice = "Novi klijent"
|
||||
h.renderujFormuKlijenta(w, PodaciFormeKlijenta{
|
||||
PodaciStranice: model.PodaciStranice{
|
||||
Stranica: "klijenti",
|
||||
NaslovStranice: "Novi klijent",
|
||||
Tema: podesavanja["tema"],
|
||||
NazivFirme: podesavanja["naziv_firme"],
|
||||
Podnazlov: podesavanja["podnazlov"],
|
||||
LogoTip: podesavanja["logo_tip"],
|
||||
LogoPutanja: podesavanja["logo_putanja"],
|
||||
Korisnik: "Admin",
|
||||
},
|
||||
Izmena: false,
|
||||
PodaciStranice: ps,
|
||||
Izmena: false,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -97,20 +85,14 @@ func (h *Handler) SacuvajKlijenta(w http.ResponseWriter, r *http.Request) {
|
||||
klijent, greska := parseFormuKlijenta(r)
|
||||
if greska != "" {
|
||||
podesavanja, _ := sqlite.DohvatiSvaPodesavanja(r.Context(), h.DB)
|
||||
ps := h.popuniPodaciStranice(r, podesavanja)
|
||||
ps.Stranica = "klijenti"
|
||||
ps.NaslovStranice = "Novi klijent"
|
||||
h.renderujFormuKlijenta(w, PodaciFormeKlijenta{
|
||||
PodaciStranice: model.PodaciStranice{
|
||||
Stranica: "klijenti",
|
||||
NaslovStranice: "Novi klijent",
|
||||
Tema: podesavanja["tema"],
|
||||
NazivFirme: podesavanja["naziv_firme"],
|
||||
Podnazlov: podesavanja["podnazlov"],
|
||||
LogoTip: podesavanja["logo_tip"],
|
||||
LogoPutanja: podesavanja["logo_putanja"],
|
||||
Korisnik: "Admin",
|
||||
},
|
||||
Klijent: klijent,
|
||||
Greska: greska,
|
||||
Izmena: false,
|
||||
PodaciStranice: ps,
|
||||
Klijent: klijent,
|
||||
Greska: greska,
|
||||
Izmena: false,
|
||||
})
|
||||
return
|
||||
}
|
||||
@@ -118,20 +100,14 @@ func (h *Handler) SacuvajKlijenta(w http.ResponseWriter, r *http.Request) {
|
||||
if _, err := h.KlijentiRepo.Kreiraj(r.Context(), &klijent); err != nil {
|
||||
log.Printf("greška pri čuvanju klijenta: %v", err)
|
||||
podesavanja, _ := sqlite.DohvatiSvaPodesavanja(r.Context(), h.DB)
|
||||
ps := h.popuniPodaciStranice(r, podesavanja)
|
||||
ps.Stranica = "klijenti"
|
||||
ps.NaslovStranice = "Novi klijent"
|
||||
h.renderujFormuKlijenta(w, PodaciFormeKlijenta{
|
||||
PodaciStranice: model.PodaciStranice{
|
||||
Stranica: "klijenti",
|
||||
NaslovStranice: "Novi klijent",
|
||||
Tema: podesavanja["tema"],
|
||||
NazivFirme: podesavanja["naziv_firme"],
|
||||
Podnazlov: podesavanja["podnazlov"],
|
||||
LogoTip: podesavanja["logo_tip"],
|
||||
LogoPutanja: podesavanja["logo_putanja"],
|
||||
Korisnik: "Admin",
|
||||
},
|
||||
Klijent: klijent,
|
||||
Greska: "Došlo je do greške pri čuvanju. Pokušajte ponovo.",
|
||||
Izmena: false,
|
||||
PodaciStranice: ps,
|
||||
Klijent: klijent,
|
||||
Greska: "Došlo je do greške pri čuvanju. Pokušajte ponovo.",
|
||||
Izmena: false,
|
||||
})
|
||||
return
|
||||
}
|
||||
@@ -159,19 +135,13 @@ func (h *Handler) IzmeniKlijenta(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
ps := h.popuniPodaciStranice(r, podesavanja)
|
||||
ps.Stranica = "klijenti"
|
||||
ps.NaslovStranice = "Izmeni klijenta"
|
||||
h.renderujFormuKlijenta(w, PodaciFormeKlijenta{
|
||||
PodaciStranice: model.PodaciStranice{
|
||||
Stranica: "klijenti",
|
||||
NaslovStranice: "Izmeni klijenta",
|
||||
Tema: podesavanja["tema"],
|
||||
NazivFirme: podesavanja["naziv_firme"],
|
||||
Podnazlov: podesavanja["podnazlov"],
|
||||
LogoTip: podesavanja["logo_tip"],
|
||||
LogoPutanja: podesavanja["logo_putanja"],
|
||||
Korisnik: "Admin",
|
||||
},
|
||||
Klijent: *klijent,
|
||||
Izmena: true,
|
||||
PodaciStranice: ps,
|
||||
Klijent: *klijent,
|
||||
Izmena: true,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -192,20 +162,14 @@ func (h *Handler) SacuvajIzmenuKlijenta(w http.ResponseWriter, r *http.Request)
|
||||
if greska != "" {
|
||||
podesavanja, _ := sqlite.DohvatiSvaPodesavanja(r.Context(), h.DB)
|
||||
klijent.ID = id
|
||||
ps := h.popuniPodaciStranice(r, podesavanja)
|
||||
ps.Stranica = "klijenti"
|
||||
ps.NaslovStranice = "Izmeni klijenta"
|
||||
h.renderujFormuKlijenta(w, PodaciFormeKlijenta{
|
||||
PodaciStranice: model.PodaciStranice{
|
||||
Stranica: "klijenti",
|
||||
NaslovStranice: "Izmeni klijenta",
|
||||
Tema: podesavanja["tema"],
|
||||
NazivFirme: podesavanja["naziv_firme"],
|
||||
Podnazlov: podesavanja["podnazlov"],
|
||||
LogoTip: podesavanja["logo_tip"],
|
||||
LogoPutanja: podesavanja["logo_putanja"],
|
||||
Korisnik: "Admin",
|
||||
},
|
||||
Klijent: klijent,
|
||||
Greska: greska,
|
||||
Izmena: true,
|
||||
PodaciStranice: ps,
|
||||
Klijent: klijent,
|
||||
Greska: greska,
|
||||
Izmena: true,
|
||||
})
|
||||
return
|
||||
}
|
||||
@@ -214,20 +178,14 @@ func (h *Handler) SacuvajIzmenuKlijenta(w http.ResponseWriter, r *http.Request)
|
||||
if err := h.KlijentiRepo.Izmeni(r.Context(), &klijent); err != nil {
|
||||
log.Printf("greška pri čuvanju izmene klijenta: %v", err)
|
||||
podesavanja, _ := sqlite.DohvatiSvaPodesavanja(r.Context(), h.DB)
|
||||
ps := h.popuniPodaciStranice(r, podesavanja)
|
||||
ps.Stranica = "klijenti"
|
||||
ps.NaslovStranice = "Izmeni klijenta"
|
||||
h.renderujFormuKlijenta(w, PodaciFormeKlijenta{
|
||||
PodaciStranice: model.PodaciStranice{
|
||||
Stranica: "klijenti",
|
||||
NaslovStranice: "Izmeni klijenta",
|
||||
Tema: podesavanja["tema"],
|
||||
NazivFirme: podesavanja["naziv_firme"],
|
||||
Podnazlov: podesavanja["podnazlov"],
|
||||
LogoTip: podesavanja["logo_tip"],
|
||||
LogoPutanja: podesavanja["logo_putanja"],
|
||||
Korisnik: "Admin",
|
||||
},
|
||||
Klijent: klijent,
|
||||
Greska: "Došlo je do greške pri čuvanju. Pokušajte ponovo.",
|
||||
Izmena: true,
|
||||
PodaciStranice: ps,
|
||||
Klijent: klijent,
|
||||
Greska: "Došlo je do greške pri čuvanju. Pokušajte ponovo.",
|
||||
Izmena: true,
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
@@ -56,17 +56,11 @@ func (h *Handler) Magacin(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
ps := h.popuniPodaciStranice(r, podesavanja)
|
||||
ps.Stranica = "magacin"
|
||||
ps.NaslovStranice = "Magacin"
|
||||
podaci := PodaciMagacina{
|
||||
PodaciStranice: model.PodaciStranice{
|
||||
Stranica: "magacin",
|
||||
NaslovStranice: "Magacin",
|
||||
Tema: podesavanja["tema"],
|
||||
NazivFirme: podesavanja["naziv_firme"],
|
||||
Podnazlov: podesavanja["podnazlov"],
|
||||
LogoTip: podesavanja["logo_tip"],
|
||||
LogoPutanja: podesavanja["logo_putanja"],
|
||||
Korisnik: "Admin",
|
||||
},
|
||||
PodaciStranice: ps,
|
||||
Artikli: artikli,
|
||||
Kategorije: kategorije,
|
||||
Filter: filter,
|
||||
|
||||
@@ -35,22 +35,14 @@ func (h *Handler) NoviArtikal(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
podaci := PodaciFormeArtikla{
|
||||
PodaciStranice: model.PodaciStranice{
|
||||
Stranica: "magacin",
|
||||
NaslovStranice: "Novi artikal",
|
||||
Tema: podesavanja["tema"],
|
||||
NazivFirme: podesavanja["naziv_firme"],
|
||||
Podnazlov: podesavanja["podnazlov"],
|
||||
LogoTip: podesavanja["logo_tip"],
|
||||
LogoPutanja: podesavanja["logo_putanja"],
|
||||
Korisnik: "Admin",
|
||||
},
|
||||
Kategorije: kategorije,
|
||||
Izmena: false,
|
||||
}
|
||||
|
||||
h.renderujFormuArtikla(w, podaci)
|
||||
ps := h.popuniPodaciStranice(r, podesavanja)
|
||||
ps.Stranica = "magacin"
|
||||
ps.NaslovStranice = "Novi artikal"
|
||||
h.renderujFormuArtikla(w, PodaciFormeArtikla{
|
||||
PodaciStranice: ps,
|
||||
Kategorije: kategorije,
|
||||
Izmena: false,
|
||||
})
|
||||
}
|
||||
|
||||
// SacuvajArtikal prima POST formu i čuva novi artikal
|
||||
@@ -68,17 +60,11 @@ func (h *Handler) SacuvajArtikal(w http.ResponseWriter, r *http.Request) {
|
||||
if artikal.KategorijaID != nil {
|
||||
katIDStr = strconv.FormatInt(*artikal.KategorijaID, 10)
|
||||
}
|
||||
ps := h.popuniPodaciStranice(r, podesavanja)
|
||||
ps.Stranica = "magacin"
|
||||
ps.NaslovStranice = "Novi artikal"
|
||||
h.renderujFormuArtikla(w, PodaciFormeArtikla{
|
||||
PodaciStranice: model.PodaciStranice{
|
||||
Stranica: "magacin",
|
||||
NaslovStranice: "Novi artikal",
|
||||
Tema: podesavanja["tema"],
|
||||
NazivFirme: podesavanja["naziv_firme"],
|
||||
Podnazlov: podesavanja["podnazlov"],
|
||||
LogoTip: podesavanja["logo_tip"],
|
||||
LogoPutanja: podesavanja["logo_putanja"],
|
||||
Korisnik: "Admin",
|
||||
},
|
||||
PodaciStranice: ps,
|
||||
Artikal: artikal,
|
||||
Kategorije: kategorije,
|
||||
KategorijaIDStr: katIDStr,
|
||||
@@ -136,24 +122,16 @@ func (h *Handler) IzmeniArtikal(w http.ResponseWriter, r *http.Request) {
|
||||
katIDStr = strconv.FormatInt(*artikal.KategorijaID, 10)
|
||||
}
|
||||
|
||||
podaci := PodaciFormeArtikla{
|
||||
PodaciStranice: model.PodaciStranice{
|
||||
Stranica: "magacin",
|
||||
NaslovStranice: "Izmeni artikal",
|
||||
Tema: podesavanja["tema"],
|
||||
NazivFirme: podesavanja["naziv_firme"],
|
||||
Podnazlov: podesavanja["podnazlov"],
|
||||
LogoTip: podesavanja["logo_tip"],
|
||||
LogoPutanja: podesavanja["logo_putanja"],
|
||||
Korisnik: "Admin",
|
||||
},
|
||||
ps := h.popuniPodaciStranice(r, podesavanja)
|
||||
ps.Stranica = "magacin"
|
||||
ps.NaslovStranice = "Izmeni artikal"
|
||||
h.renderujFormuArtikla(w, PodaciFormeArtikla{
|
||||
PodaciStranice: ps,
|
||||
Artikal: *artikal,
|
||||
Kategorije: kategorije,
|
||||
KategorijaIDStr: katIDStr,
|
||||
Izmena: true,
|
||||
}
|
||||
|
||||
h.renderujFormuArtikla(w, podaci)
|
||||
})
|
||||
}
|
||||
|
||||
// SacuvajIzmenuArtikla prima POST formu i čuva izmenu artikla
|
||||
@@ -179,17 +157,11 @@ func (h *Handler) SacuvajIzmenuArtikla(w http.ResponseWriter, r *http.Request) {
|
||||
if artikal.KategorijaID != nil {
|
||||
katIDStr = strconv.FormatInt(*artikal.KategorijaID, 10)
|
||||
}
|
||||
ps := h.popuniPodaciStranice(r, podesavanja)
|
||||
ps.Stranica = "magacin"
|
||||
ps.NaslovStranice = "Izmeni artikal"
|
||||
h.renderujFormuArtikla(w, PodaciFormeArtikla{
|
||||
PodaciStranice: model.PodaciStranice{
|
||||
Stranica: "magacin",
|
||||
NaslovStranice: "Izmeni artikal",
|
||||
Tema: podesavanja["tema"],
|
||||
NazivFirme: podesavanja["naziv_firme"],
|
||||
Podnazlov: podesavanja["podnazlov"],
|
||||
LogoTip: podesavanja["logo_tip"],
|
||||
LogoPutanja: podesavanja["logo_putanja"],
|
||||
Korisnik: "Admin",
|
||||
},
|
||||
PodaciStranice: ps,
|
||||
Artikal: artikal,
|
||||
Kategorije: kategorije,
|
||||
KategorijaIDStr: katIDStr,
|
||||
|
||||
+33
-57
@@ -25,11 +25,11 @@ type PodaciNabavki struct {
|
||||
// PodaciFormeNabavke su podaci za formu unosa nove nabavke
|
||||
type PodaciFormeNabavke struct {
|
||||
model.PodaciStranice
|
||||
Artikli []model.ArtikalSaKategorijom
|
||||
ArtikliJSON template.JS // JSON niz artikala za Alpine.js — bezbedan za umetanje u <script>
|
||||
Dobavljaci []model.Dobavljac
|
||||
Kategorije []model.Kategorija // za dropdown u modalu novog artikla
|
||||
Greska string
|
||||
Artikli []model.ArtikalSaKategorijom
|
||||
ArtikliJSON template.JS // JSON niz artikala za Alpine.js — bezbedan za umetanje u <script>
|
||||
Dobavljaci []model.Dobavljac
|
||||
Kategorije []model.Kategorija // za dropdown u modalu novog artikla
|
||||
Greska string
|
||||
}
|
||||
|
||||
// PodaciDetaljiNabavke su podaci za pregled jedne nabavke sa stavkama
|
||||
@@ -68,20 +68,14 @@ func (h *Handler) Nabavke(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
ps := h.popuniPodaciStranice(r, podesavanja)
|
||||
ps.Stranica = "nabavke"
|
||||
ps.NaslovStranice = "Nabavke"
|
||||
podaci := PodaciNabavki{
|
||||
PodaciStranice: model.PodaciStranice{
|
||||
Stranica: "nabavke",
|
||||
NaslovStranice: "Nabavke",
|
||||
Tema: podesavanja["tema"],
|
||||
NazivFirme: podesavanja["naziv_firme"],
|
||||
Podnazlov: podesavanja["podnazlov"],
|
||||
LogoTip: podesavanja["logo_tip"],
|
||||
LogoPutanja: podesavanja["logo_putanja"],
|
||||
Korisnik: "Admin",
|
||||
},
|
||||
Nabavke: nabavke,
|
||||
Sacuvano: r.URL.Query().Get("sacuvano") == "1",
|
||||
Obrisan: r.URL.Query().Get("obrisan") == "1",
|
||||
PodaciStranice: ps,
|
||||
Nabavke: nabavke,
|
||||
Sacuvano: r.URL.Query().Get("sacuvano") == "1",
|
||||
Obrisan: r.URL.Query().Get("obrisan") == "1",
|
||||
}
|
||||
|
||||
h.renderujTemplate(w, "nabavke", podaci)
|
||||
@@ -113,21 +107,15 @@ func (h *Handler) NovaNabavka(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
ps := h.popuniPodaciStranice(r, podesavanja)
|
||||
ps.Stranica = "nabavke"
|
||||
ps.NaslovStranice = "Nova nabavka"
|
||||
h.renderujFormuNabavke(w, PodaciFormeNabavke{
|
||||
PodaciStranice: model.PodaciStranice{
|
||||
Stranica: "nabavke",
|
||||
NaslovStranice: "Nova nabavka",
|
||||
Tema: podesavanja["tema"],
|
||||
NazivFirme: podesavanja["naziv_firme"],
|
||||
Podnazlov: podesavanja["podnazlov"],
|
||||
LogoTip: podesavanja["logo_tip"],
|
||||
LogoPutanja: podesavanja["logo_putanja"],
|
||||
Korisnik: "Admin",
|
||||
},
|
||||
Artikli: artikli,
|
||||
ArtikliJSON: artikalUJSON(artikli),
|
||||
Dobavljaci: dobavljaci,
|
||||
Kategorije: kategorije,
|
||||
PodaciStranice: ps,
|
||||
Artikli: artikli,
|
||||
ArtikliJSON: artikalUJSON(artikli),
|
||||
Dobavljaci: dobavljaci,
|
||||
Kategorije: kategorije,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -144,22 +132,16 @@ func (h *Handler) SacuvajNabavku(w http.ResponseWriter, r *http.Request) {
|
||||
artikli, _ := h.Artikli.Lista(r.Context(), db.ArtikalFilter{})
|
||||
dobavljaci, _ := h.DobavljaciRepo.Lista(r.Context(), "")
|
||||
kategorije, _ := h.KategorijeRepo.Lista(r.Context())
|
||||
ps := h.popuniPodaciStranice(r, podesavanja)
|
||||
ps.Stranica = "nabavke"
|
||||
ps.NaslovStranice = "Nova nabavka"
|
||||
h.renderujFormuNabavke(w, PodaciFormeNabavke{
|
||||
PodaciStranice: model.PodaciStranice{
|
||||
Stranica: "nabavke",
|
||||
NaslovStranice: "Nova nabavka",
|
||||
Tema: podesavanja["tema"],
|
||||
NazivFirme: podesavanja["naziv_firme"],
|
||||
Podnazlov: podesavanja["podnazlov"],
|
||||
LogoTip: podesavanja["logo_tip"],
|
||||
LogoPutanja: podesavanja["logo_putanja"],
|
||||
Korisnik: "Admin",
|
||||
},
|
||||
Artikli: artikli,
|
||||
ArtikliJSON: artikalUJSON(artikli),
|
||||
Dobavljaci: dobavljaci,
|
||||
Kategorije: kategorije,
|
||||
Greska: greska,
|
||||
PodaciStranice: ps,
|
||||
Artikli: artikli,
|
||||
ArtikliJSON: artikalUJSON(artikli),
|
||||
Dobavljaci: dobavljaci,
|
||||
Kategorije: kategorije,
|
||||
Greska: greska,
|
||||
})
|
||||
return
|
||||
}
|
||||
@@ -208,17 +190,11 @@ func (h *Handler) DetaljiNabavke(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
}
|
||||
|
||||
ps := h.popuniPodaciStranice(r, podesavanja)
|
||||
ps.Stranica = "nabavke"
|
||||
ps.NaslovStranice = "Detalji nabavke"
|
||||
podaci := PodaciDetaljiNabavke{
|
||||
PodaciStranice: model.PodaciStranice{
|
||||
Stranica: "nabavke",
|
||||
NaslovStranice: "Detalji nabavke",
|
||||
Tema: podesavanja["tema"],
|
||||
NazivFirme: podesavanja["naziv_firme"],
|
||||
Podnazlov: podesavanja["podnazlov"],
|
||||
LogoTip: podesavanja["logo_tip"],
|
||||
LogoPutanja: podesavanja["logo_putanja"],
|
||||
Korisnik: "Admin",
|
||||
},
|
||||
PodaciStranice: ps,
|
||||
Nabavka: *nabavka,
|
||||
Stavke: stavke,
|
||||
DobavljacNaziv: dobavljacNaziv,
|
||||
|
||||
@@ -40,28 +40,22 @@ func (h *Handler) Podesavanja(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
ps := h.popuniPodaciStranice(r, podesavanja)
|
||||
ps.Stranica = "podesavanja"
|
||||
ps.NaslovStranice = "Podešavanja"
|
||||
podaci := PodaciPodesavanja{
|
||||
PodaciStranice: model.PodaciStranice{
|
||||
Stranica: "podesavanja",
|
||||
NaslovStranice: "Podešavanja",
|
||||
Tema: podesavanja["tema"],
|
||||
NazivFirme: podesavanja["naziv_firme"],
|
||||
Podnazlov: podesavanja["podnazlov"],
|
||||
LogoTip: podesavanja["logo_tip"],
|
||||
LogoPutanja: podesavanja["logo_putanja"],
|
||||
Korisnik: "Admin",
|
||||
},
|
||||
NazivFirme: podesavanja["naziv_firme"],
|
||||
Podnazlov: podesavanja["podnazlov"],
|
||||
Adresa: podesavanja["adresa"],
|
||||
Telefon: podesavanja["telefon"],
|
||||
PIB: podesavanja["pib"],
|
||||
LogoTip: podesavanja["logo_tip"],
|
||||
LogoPutanja: podesavanja["logo_putanja"],
|
||||
Tema: podesavanja["tema"],
|
||||
Sacuvano: r.URL.Query().Get("sacuvano") == "1",
|
||||
Verzija: h.Verzija,
|
||||
LogoGreska: r.URL.Query().Get("logo_greska"),
|
||||
PodaciStranice: ps,
|
||||
NazivFirme: podesavanja["naziv_firme"],
|
||||
Podnazlov: podesavanja["podnazlov"],
|
||||
Adresa: podesavanja["adresa"],
|
||||
Telefon: podesavanja["telefon"],
|
||||
PIB: podesavanja["pib"],
|
||||
LogoTip: podesavanja["logo_tip"],
|
||||
LogoPutanja: podesavanja["logo_putanja"],
|
||||
Tema: podesavanja["tema"],
|
||||
Sacuvano: r.URL.Query().Get("sacuvano") == "1",
|
||||
Verzija: h.Verzija,
|
||||
LogoGreska: r.URL.Query().Get("logo_greska"),
|
||||
}
|
||||
|
||||
h.renderujTemplate(w, "podesavanja", podaci)
|
||||
|
||||
+31
-55
@@ -88,21 +88,15 @@ func (h *Handler) Prodaja(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
ps := h.popuniPodaciStranice(r, podesavanja)
|
||||
ps.Stranica = "prodaja"
|
||||
ps.NaslovStranice = "Prodaja"
|
||||
podaci := PodaciProdaje{
|
||||
PodaciStranice: model.PodaciStranice{
|
||||
Stranica: "prodaja",
|
||||
NaslovStranice: "Prodaja",
|
||||
Tema: podesavanja["tema"],
|
||||
NazivFirme: podesavanja["naziv_firme"],
|
||||
Podnazlov: podesavanja["podnazlov"],
|
||||
LogoTip: podesavanja["logo_tip"],
|
||||
LogoPutanja: podesavanja["logo_putanja"],
|
||||
Korisnik: "Admin",
|
||||
},
|
||||
Nalozi: nalozi,
|
||||
Sacuvano: r.URL.Query().Get("sacuvano") == "1",
|
||||
Obrisan: r.URL.Query().Get("obrisan") == "1",
|
||||
Pretraga: pretraga,
|
||||
PodaciStranice: ps,
|
||||
Nalozi: nalozi,
|
||||
Sacuvano: r.URL.Query().Get("sacuvano") == "1",
|
||||
Obrisan: r.URL.Query().Get("obrisan") == "1",
|
||||
Pretraga: pretraga,
|
||||
}
|
||||
|
||||
h.renderujTemplate(w, "prodaja", podaci)
|
||||
@@ -128,20 +122,14 @@ func (h *Handler) NovaProdaja(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
ps := h.popuniPodaciStranice(r, podesavanja)
|
||||
ps.Stranica = "prodaja"
|
||||
ps.NaslovStranice = "Nova prodaja"
|
||||
h.renderujFormuProdaje(w, PodaciFormeProdaje{
|
||||
PodaciStranice: model.PodaciStranice{
|
||||
Stranica: "prodaja",
|
||||
NaslovStranice: "Nova prodaja",
|
||||
Tema: podesavanja["tema"],
|
||||
NazivFirme: podesavanja["naziv_firme"],
|
||||
Podnazlov: podesavanja["podnazlov"],
|
||||
LogoTip: podesavanja["logo_tip"],
|
||||
LogoPutanja: podesavanja["logo_putanja"],
|
||||
Korisnik: "Admin",
|
||||
},
|
||||
Artikli: artikli,
|
||||
ArtikliJSON: artikalUJSONSaCenom(artikli),
|
||||
Klijenti: klijenti,
|
||||
PodaciStranice: ps,
|
||||
Artikli: artikli,
|
||||
ArtikliJSON: artikalUJSONSaCenom(artikli),
|
||||
Klijenti: klijenti,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -158,21 +146,15 @@ func (h *Handler) SacuvajProdaju(w http.ResponseWriter, r *http.Request) {
|
||||
podesavanja, _ := sqlite.DohvatiSvaPodesavanja(r.Context(), h.DB)
|
||||
artikli, _ := h.Artikli.Lista(r.Context(), appdb.ArtikalFilter{})
|
||||
klijenti, _ := h.KlijentiRepo.Lista(r.Context(), "")
|
||||
ps := h.popuniPodaciStranice(r, podesavanja)
|
||||
ps.Stranica = "prodaja"
|
||||
ps.NaslovStranice = "Nova prodaja"
|
||||
h.renderujFormuProdaje(w, PodaciFormeProdaje{
|
||||
PodaciStranice: model.PodaciStranice{
|
||||
Stranica: "prodaja",
|
||||
NaslovStranice: "Nova prodaja",
|
||||
Tema: podesavanja["tema"],
|
||||
NazivFirme: podesavanja["naziv_firme"],
|
||||
Podnazlov: podesavanja["podnazlov"],
|
||||
LogoTip: podesavanja["logo_tip"],
|
||||
LogoPutanja: podesavanja["logo_putanja"],
|
||||
Korisnik: "Admin",
|
||||
},
|
||||
Artikli: artikli,
|
||||
ArtikliJSON: artikalUJSONSaCenom(artikli),
|
||||
Klijenti: klijenti,
|
||||
Greska: poruka,
|
||||
PodaciStranice: ps,
|
||||
Artikli: artikli,
|
||||
ArtikliJSON: artikalUJSONSaCenom(artikli),
|
||||
Klijenti: klijenti,
|
||||
Greska: poruka,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -250,21 +232,15 @@ func (h *Handler) DetaljiProdaje(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
}
|
||||
|
||||
ps := h.popuniPodaciStranice(r, podesavanja)
|
||||
ps.Stranica = "prodaja"
|
||||
ps.NaslovStranice = "Detalji prodaje"
|
||||
podaci := PodaciDetaljiProdaje{
|
||||
PodaciStranice: model.PodaciStranice{
|
||||
Stranica: "prodaja",
|
||||
NaslovStranice: "Detalji prodaje",
|
||||
Tema: podesavanja["tema"],
|
||||
NazivFirme: podesavanja["naziv_firme"],
|
||||
Podnazlov: podesavanja["podnazlov"],
|
||||
LogoTip: podesavanja["logo_tip"],
|
||||
LogoPutanja: podesavanja["logo_putanja"],
|
||||
Korisnik: "Admin",
|
||||
},
|
||||
Nalog: *nalog,
|
||||
Stavke: stavke,
|
||||
KlijentNaziv: klijentNaziv,
|
||||
Sacuvano: r.URL.Query().Get("sacuvano") == "1",
|
||||
PodaciStranice: ps,
|
||||
Nalog: *nalog,
|
||||
Stavke: stavke,
|
||||
KlijentNaziv: klijentNaziv,
|
||||
Sacuvano: r.URL.Query().Get("sacuvano") == "1",
|
||||
}
|
||||
|
||||
h.renderujTemplate(w, "prodaja_detalji", podaci)
|
||||
|
||||
+69
-117
@@ -59,23 +59,17 @@ func (h *Handler) Servis(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
ps := h.popuniPodaciStranice(r, podesavanja)
|
||||
ps.Stranica = "servis"
|
||||
ps.NaslovStranice = "Servis"
|
||||
podaci := PodaciServisa{
|
||||
PodaciStranice: model.PodaciStranice{
|
||||
Stranica: "servis",
|
||||
NaslovStranice: "Servis",
|
||||
Tema: podesavanja["tema"],
|
||||
NazivFirme: podesavanja["naziv_firme"],
|
||||
Podnazlov: podesavanja["podnazlov"],
|
||||
LogoTip: podesavanja["logo_tip"],
|
||||
LogoPutanja: podesavanja["logo_putanja"],
|
||||
Korisnik: "Admin",
|
||||
},
|
||||
Nalozi: nalozi,
|
||||
Pretraga: pretraga,
|
||||
FilterStatus: filterStatus,
|
||||
SviStatusi: model.SviStatusi,
|
||||
Sacuvano: r.URL.Query().Get("sacuvano") == "1",
|
||||
Obrisan: r.URL.Query().Get("obrisan") == "1",
|
||||
PodaciStranice: ps,
|
||||
Nalozi: nalozi,
|
||||
Pretraga: pretraga,
|
||||
FilterStatus: filterStatus,
|
||||
SviStatusi: model.SviStatusi,
|
||||
Sacuvano: r.URL.Query().Get("sacuvano") == "1",
|
||||
Obrisan: r.URL.Query().Get("obrisan") == "1",
|
||||
}
|
||||
|
||||
h.renderujTemplate(w, "servis", podaci)
|
||||
@@ -101,21 +95,15 @@ func (h *Handler) NoviNalog(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
ps := h.popuniPodaciStranice(r, podesavanja)
|
||||
ps.Stranica = "servis"
|
||||
ps.NaslovStranice = "Novi nalog"
|
||||
h.renderujFormuNaloga(w, PodaciFormeNaloga{
|
||||
PodaciStranice: model.PodaciStranice{
|
||||
Stranica: "servis",
|
||||
NaslovStranice: "Novi nalog",
|
||||
Tema: podesavanja["tema"],
|
||||
NazivFirme: podesavanja["naziv_firme"],
|
||||
Podnazlov: podesavanja["podnazlov"],
|
||||
LogoTip: podesavanja["logo_tip"],
|
||||
LogoPutanja: podesavanja["logo_putanja"],
|
||||
Korisnik: "Admin",
|
||||
},
|
||||
Nalog: model.ServisniNalog{BrojNaloga: brojNaloga, Status: model.StatusPrimljeno},
|
||||
Klijenti: klijenti,
|
||||
SviStatusi: model.SviStatusi,
|
||||
Izmena: false,
|
||||
PodaciStranice: ps,
|
||||
Nalog: model.ServisniNalog{BrojNaloga: brojNaloga, Status: model.StatusPrimljeno},
|
||||
Klijenti: klijenti,
|
||||
SviStatusi: model.SviStatusi,
|
||||
Izmena: false,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -130,22 +118,16 @@ func (h *Handler) SacuvajNalog(w http.ResponseWriter, r *http.Request) {
|
||||
if greska != "" {
|
||||
podesavanja, _ := sqlite.DohvatiSvaPodesavanja(r.Context(), h.DB)
|
||||
klijenti, _ := h.KlijentiRepo.Lista(r.Context(), "")
|
||||
ps := h.popuniPodaciStranice(r, podesavanja)
|
||||
ps.Stranica = "servis"
|
||||
ps.NaslovStranice = "Novi nalog"
|
||||
h.renderujFormuNaloga(w, PodaciFormeNaloga{
|
||||
PodaciStranice: model.PodaciStranice{
|
||||
Stranica: "servis",
|
||||
NaslovStranice: "Novi nalog",
|
||||
Tema: podesavanja["tema"],
|
||||
NazivFirme: podesavanja["naziv_firme"],
|
||||
Podnazlov: podesavanja["podnazlov"],
|
||||
LogoTip: podesavanja["logo_tip"],
|
||||
LogoPutanja: podesavanja["logo_putanja"],
|
||||
Korisnik: "Admin",
|
||||
},
|
||||
Nalog: nalog,
|
||||
Klijenti: klijenti,
|
||||
SviStatusi: model.SviStatusi,
|
||||
Greska: greska,
|
||||
Izmena: false,
|
||||
PodaciStranice: ps,
|
||||
Nalog: nalog,
|
||||
Klijenti: klijenti,
|
||||
SviStatusi: model.SviStatusi,
|
||||
Greska: greska,
|
||||
Izmena: false,
|
||||
})
|
||||
return
|
||||
}
|
||||
@@ -155,22 +137,16 @@ func (h *Handler) SacuvajNalog(w http.ResponseWriter, r *http.Request) {
|
||||
log.Printf("greška pri čuvanju naloga: %v", err)
|
||||
podesavanja, _ := sqlite.DohvatiSvaPodesavanja(r.Context(), h.DB)
|
||||
klijenti, _ := h.KlijentiRepo.Lista(r.Context(), "")
|
||||
ps := h.popuniPodaciStranice(r, podesavanja)
|
||||
ps.Stranica = "servis"
|
||||
ps.NaslovStranice = "Novi nalog"
|
||||
h.renderujFormuNaloga(w, PodaciFormeNaloga{
|
||||
PodaciStranice: model.PodaciStranice{
|
||||
Stranica: "servis",
|
||||
NaslovStranice: "Novi nalog",
|
||||
Tema: podesavanja["tema"],
|
||||
NazivFirme: podesavanja["naziv_firme"],
|
||||
Podnazlov: podesavanja["podnazlov"],
|
||||
LogoTip: podesavanja["logo_tip"],
|
||||
LogoPutanja: podesavanja["logo_putanja"],
|
||||
Korisnik: "Admin",
|
||||
},
|
||||
Nalog: nalog,
|
||||
Klijenti: klijenti,
|
||||
SviStatusi: model.SviStatusi,
|
||||
Greska: "Došlo je do greške pri čuvanju. Pokušajte ponovo.",
|
||||
Izmena: false,
|
||||
PodaciStranice: ps,
|
||||
Nalog: nalog,
|
||||
Klijenti: klijenti,
|
||||
SviStatusi: model.SviStatusi,
|
||||
Greska: "Došlo je do greške pri čuvanju. Pokušajte ponovo.",
|
||||
Izmena: false,
|
||||
})
|
||||
return
|
||||
}
|
||||
@@ -204,21 +180,15 @@ func (h *Handler) IzmeniNalog(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
ps := h.popuniPodaciStranice(r, podesavanja)
|
||||
ps.Stranica = "servis"
|
||||
ps.NaslovStranice = "Izmeni nalog"
|
||||
h.renderujFormuNaloga(w, PodaciFormeNaloga{
|
||||
PodaciStranice: model.PodaciStranice{
|
||||
Stranica: "servis",
|
||||
NaslovStranice: "Izmeni nalog",
|
||||
Tema: podesavanja["tema"],
|
||||
NazivFirme: podesavanja["naziv_firme"],
|
||||
Podnazlov: podesavanja["podnazlov"],
|
||||
LogoTip: podesavanja["logo_tip"],
|
||||
LogoPutanja: podesavanja["logo_putanja"],
|
||||
Korisnik: "Admin",
|
||||
},
|
||||
Nalog: *nalog,
|
||||
Klijenti: klijenti,
|
||||
SviStatusi: model.SviStatusi,
|
||||
Izmena: true,
|
||||
PodaciStranice: ps,
|
||||
Nalog: *nalog,
|
||||
Klijenti: klijenti,
|
||||
SviStatusi: model.SviStatusi,
|
||||
Izmena: true,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -240,22 +210,16 @@ func (h *Handler) SacuvajIzmenaNaloga(w http.ResponseWriter, r *http.Request) {
|
||||
podesavanja, _ := sqlite.DohvatiSvaPodesavanja(r.Context(), h.DB)
|
||||
klijenti, _ := h.KlijentiRepo.Lista(r.Context(), "")
|
||||
nalog.ID = id
|
||||
ps := h.popuniPodaciStranice(r, podesavanja)
|
||||
ps.Stranica = "servis"
|
||||
ps.NaslovStranice = "Izmeni nalog"
|
||||
h.renderujFormuNaloga(w, PodaciFormeNaloga{
|
||||
PodaciStranice: model.PodaciStranice{
|
||||
Stranica: "servis",
|
||||
NaslovStranice: "Izmeni nalog",
|
||||
Tema: podesavanja["tema"],
|
||||
NazivFirme: podesavanja["naziv_firme"],
|
||||
Podnazlov: podesavanja["podnazlov"],
|
||||
LogoTip: podesavanja["logo_tip"],
|
||||
LogoPutanja: podesavanja["logo_putanja"],
|
||||
Korisnik: "Admin",
|
||||
},
|
||||
Nalog: nalog,
|
||||
Klijenti: klijenti,
|
||||
SviStatusi: model.SviStatusi,
|
||||
Greska: greska,
|
||||
Izmena: true,
|
||||
PodaciStranice: ps,
|
||||
Nalog: nalog,
|
||||
Klijenti: klijenti,
|
||||
SviStatusi: model.SviStatusi,
|
||||
Greska: greska,
|
||||
Izmena: true,
|
||||
})
|
||||
return
|
||||
}
|
||||
@@ -265,22 +229,16 @@ func (h *Handler) SacuvajIzmenaNaloga(w http.ResponseWriter, r *http.Request) {
|
||||
log.Printf("greška pri čuvanju izmene naloga: %v", err)
|
||||
podesavanja, _ := sqlite.DohvatiSvaPodesavanja(r.Context(), h.DB)
|
||||
klijenti, _ := h.KlijentiRepo.Lista(r.Context(), "")
|
||||
ps := h.popuniPodaciStranice(r, podesavanja)
|
||||
ps.Stranica = "servis"
|
||||
ps.NaslovStranice = "Izmeni nalog"
|
||||
h.renderujFormuNaloga(w, PodaciFormeNaloga{
|
||||
PodaciStranice: model.PodaciStranice{
|
||||
Stranica: "servis",
|
||||
NaslovStranice: "Izmeni nalog",
|
||||
Tema: podesavanja["tema"],
|
||||
NazivFirme: podesavanja["naziv_firme"],
|
||||
Podnazlov: podesavanja["podnazlov"],
|
||||
LogoTip: podesavanja["logo_tip"],
|
||||
LogoPutanja: podesavanja["logo_putanja"],
|
||||
Korisnik: "Admin",
|
||||
},
|
||||
Nalog: nalog,
|
||||
Klijenti: klijenti,
|
||||
SviStatusi: model.SviStatusi,
|
||||
Greska: "Došlo je do greške pri čuvanju. Pokušajte ponovo.",
|
||||
Izmena: true,
|
||||
PodaciStranice: ps,
|
||||
Nalog: nalog,
|
||||
Klijenti: klijenti,
|
||||
SviStatusi: model.SviStatusi,
|
||||
Greska: "Došlo je do greške pri čuvanju. Pokušajte ponovo.",
|
||||
Izmena: true,
|
||||
})
|
||||
return
|
||||
}
|
||||
@@ -336,20 +294,14 @@ func (h *Handler) DetaljiNaloga(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
}
|
||||
|
||||
ps := h.popuniPodaciStranice(r, podesavanja)
|
||||
ps.Stranica = "servis"
|
||||
ps.NaslovStranice = "Detalji naloga"
|
||||
podaci := PodaciDetaljiNaloga{
|
||||
PodaciStranice: model.PodaciStranice{
|
||||
Stranica: "servis",
|
||||
NaslovStranice: "Detalji naloga",
|
||||
Tema: podesavanja["tema"],
|
||||
NazivFirme: podesavanja["naziv_firme"],
|
||||
Podnazlov: podesavanja["podnazlov"],
|
||||
LogoTip: podesavanja["logo_tip"],
|
||||
LogoPutanja: podesavanja["logo_putanja"],
|
||||
Korisnik: "Admin",
|
||||
},
|
||||
Nalog: *nalog,
|
||||
KlijentNaziv: klijentNaziv,
|
||||
Sacuvano: r.URL.Query().Get("sacuvano") == "1",
|
||||
PodaciStranice: ps,
|
||||
Nalog: *nalog,
|
||||
KlijentNaziv: klijentNaziv,
|
||||
Sacuvano: r.URL.Query().Get("sacuvano") == "1",
|
||||
}
|
||||
|
||||
h.renderujTemplate(w, "servis_detalji", podaci)
|
||||
|
||||
@@ -14,7 +14,7 @@ func BezbednostHeaders() func(http.Handler) http.Handler {
|
||||
h.Set("Content-Security-Policy",
|
||||
"default-src 'self'; "+
|
||||
"style-src 'self' 'unsafe-inline' https://cdn.tailwindcss.com; "+
|
||||
"script-src 'self' 'unsafe-inline' https://cdn.tailwindcss.com https://cdn.jsdelivr.net; "+
|
||||
"script-src 'self' 'unsafe-inline' 'unsafe-eval' https://cdn.tailwindcss.com https://cdn.jsdelivr.net; "+
|
||||
"img-src 'self' data: blob:; "+
|
||||
"font-src 'self'; "+
|
||||
"connect-src 'self'")
|
||||
|
||||
@@ -49,6 +49,14 @@ type ServisniNalogSaKlijentom struct {
|
||||
KlijentNaziv string
|
||||
}
|
||||
|
||||
// KlijentIDVrednost vraća vrednost KlijentID pointera, ili 0 ako je nil
|
||||
func (n ServisniNalog) KlijentIDVrednost() int64 {
|
||||
if n.KlijentID == nil {
|
||||
return 0
|
||||
}
|
||||
return *n.KlijentID
|
||||
}
|
||||
|
||||
// CenaOdStr vraća formatiranu procenu od, ili prazan string ako nije uneta
|
||||
func (n ServisniNalog) CenaOdStr() string {
|
||||
if n.CenaOd == nil {
|
||||
|
||||
Reference in New Issue
Block a user