Servis: popup izmena polja u detaljima (predviđen datum, garancija, tehničar)
- Klik na vrednost otvara modal (obrazac kao „Promeni cenu" u Magacinu); snima se na zatvaranje modala, samo ako je vrednost promenjena (bez dugmeta Sačuvaj) - Predviđen datum vraćen u bazu kao ručni override (migracija 071); ako nije postavljen, prikaz računa izvedeni default (prijem + rok iz podešavanja) - Nove rute/handleri AzurirajPredvidjenDatum i AzurirajTehnicar - Garancija usklađena između modala i forme „Izmeni nalog" (isti izgled i logika); dugme „Podrazumevano" (prijem + meseci) na oba mesta - Checkbox „Bez garancije" čita stanje iz baze; odčekiravanjem se u kalendaru prikaže datum (garancija iz baze ili podrazumevani) - Validacija: garancija ne može biti pre datuma prijema (frontend min + backend)
This commit is contained in:
@@ -281,22 +281,24 @@
|
||||
placeholder="0" style="width:100%;">
|
||||
</div>
|
||||
{{if .Izmena}}
|
||||
<!-- garancija — uređuje se ovde; „Bez garancije" isključuje datum -->
|
||||
<div x-data="{ bez: {{if .Nalog.GarancijaDo}}false{{else}}true{{end}} }">
|
||||
<!-- garancija — isti izgled kao popup „Garancija do" u detaljima naloga;
|
||||
„Bez garancije" isključuje datum, „Podrazumevano" vraća prijem + meseci -->
|
||||
<div>
|
||||
<label class="polje-labela">Garancija do</label>
|
||||
<div style="display:flex;align-items:center;gap:10px;">
|
||||
<input type="date" name="garancija_do"
|
||||
value="{{if .Nalog.GarancijaDo}}{{.Nalog.GarancijaDo.Format "2006-01-02"}}{{end}}"
|
||||
:disabled="bez" :style="bez ? 'opacity:.5;' : ''"
|
||||
style="flex:1;min-width:0;">
|
||||
<label class="tip-opcija" :class="bez ? 'tip-opcija-akt' : ''"
|
||||
style="white-space:nowrap;">
|
||||
<input type="checkbox" x-model="bez" style="margin:0;width:auto;">
|
||||
value="{{if .Nalog.GarancijaDo}}{{.Nalog.GarancijaDo.Format "2006-01-02"}}{{else}}{{.GarancijaDefault}}{{end}}"
|
||||
min="{{.Nalog.DatumPrijema.Format "2006-01-02"}}"
|
||||
{{if .BezGarancije}}disabled{{end}}
|
||||
style="flex:1;min-width:0;{{if .BezGarancije}}opacity:.5;{{end}}">
|
||||
<label class="tip-opcija{{if .BezGarancije}} tip-opcija-akt{{end}}" style="white-space:nowrap;">
|
||||
<input type="checkbox" name="bez_garancije" value="1"{{if .BezGarancije}} checked{{end}} style="margin:0;width:auto;"
|
||||
onchange="var d=this.closest('div').querySelector('[name=garancija_do]'); d.disabled=this.checked; d.style.opacity=this.checked?'.5':''; this.closest('label').classList.toggle('tip-opcija-akt',this.checked);">
|
||||
Bez garancije
|
||||
</label>
|
||||
</div>
|
||||
<!-- skriveni flag: server preskače datum kada je 1 -->
|
||||
<input type="hidden" name="bez_garancije" :value="bez ? '1' : '0'">
|
||||
<button type="button" class="btn-sekundarno" style="margin-top:8px;"
|
||||
onclick="var f=this.closest('form'); var d=f.querySelector('[name=garancija_do]'); d.disabled=false; d.style.opacity=''; d.value='{{.GarancijaDefault}}'; var c=f.querySelector('[name=bez_garancije]'); c.checked=false; c.closest('label').classList.remove('tip-opcija-akt'); d.dispatchEvent(new Event('change',{bubbles:true}));">Podrazumevano</button>
|
||||
</div>
|
||||
{{end}}
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user