Ispravke: QR proxy šema, race šifra, JM validacija, zaštita zaliha, magacin history flash

- servis.go: qrNalogURL helper čita X-Forwarded-Proto za ispravan HTTPS QR kod iza proxy-ja
- magacin_forma.go: šifra se generiše pre INSERT (uklanja race condition); normalizujJM validacija 4 kar.; blokada promene tipa ako postoji stanje na lageru
- prodaja.go + repository.go: Obrisi beleži magacinsku promenu (PromenaPovracaj) uz korisnikID; ispravljeni zamenjeni potpisi interfejsa ServisRepository/ProdajaRepository
- kategorije.html: UI hint kada kategorija nema kôd (prefiks šifre)
- 061_backfill_kategorija_kod.sql: popunjava kod postojećim kategorijama iz naziva
- magacin.html: htmx:beforeHistorySave sklanja bez-anim pre snimanja snapshota (fix flash animacije)
This commit is contained in:
2026-06-20 21:43:34 +02:00
parent b0250b2917
commit fec84f98d5
8 changed files with 94 additions and 39 deletions
+1
View File
@@ -112,6 +112,7 @@
<input type="text" name="kod" value="{{.Kod}}" maxlength="10"
placeholder="npr. MEM"
style="width:100%;padding:8px 12px;border:0.5px solid var(--ivica);border-radius:8px;font-size:14px;background:var(--pozadina);color:var(--tekst-glavni);outline:none;text-transform:uppercase;">
{{if not .Kod}}<div class="pomocni-tekst" style="margin-top:4px;color:#f59e0b;">Kôd nije postavljen — artikli će koristiti prefiks ART-.</div>{{end}}
</div>
<div>
<label class="polje-labela">Opis</label>
+6
View File
@@ -242,6 +242,12 @@ document.body.addEventListener('htmx:beforeRequest', function (e) {
if (rez) rez.classList.add('bez-anim');
}
});
// Pre nego što HTMX sačuva snapshot stranice u sessionStorage, skloni bez-anim
// da snapshot ne prikazuje "zamrznutu" tabelu bez animacije pri sledećoj navigaciji.
document.body.addEventListener('htmx:beforeHistorySave', function () {
var rez = document.getElementById('magacin-rezultati');
if (rez) rez.classList.remove('bez-anim');
});
</script>
{{end}}