Magacin — forma puna širina, responsive popravke
This commit is contained in:
@@ -0,0 +1,77 @@
|
||||
{{template "base" .}}
|
||||
|
||||
{{define "naslov"}}Kategorije — NTech{{end}}
|
||||
|
||||
{{define "sadrzaj"}}
|
||||
<div style="display:flex;flex-direction:column;gap:16px;">
|
||||
|
||||
{{if .Sacuvano}}
|
||||
<div class="poruka-uspeh">Kategorija je uspešno sačuvana.</div>
|
||||
{{end}}
|
||||
{{if .Obrisana}}
|
||||
<div class="poruka-uspeh">Kategorija je uspešno obrisana.</div>
|
||||
{{end}}
|
||||
|
||||
<!-- nazad dugme -->
|
||||
<a href="/magacin" style="display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--tekst-sporedni);text-decoration:none;">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="15 18 9 12 15 6"/></svg>
|
||||
Nazad na magacin
|
||||
</a>
|
||||
|
||||
<!-- forma za novu kategoriju -->
|
||||
<div class="kartica">
|
||||
<div style="margin-bottom:16px;padding-bottom:12px;border-bottom:0.5px solid var(--ivica);">
|
||||
<span style="font-size:15px;font-weight:500;color:var(--tekst-glavni);">Nova kategorija</span>
|
||||
</div>
|
||||
<form method="POST" action="/magacin/kategorije/dodaj">
|
||||
<div style="display:flex;flex-direction:column;gap:12px;">
|
||||
<div>
|
||||
<label style="font-size:13px;color:var(--tekst-sporedni);display:block;margin-bottom:6px;">
|
||||
Naziv <span style="color:#dc2626;">*</span>
|
||||
</label>
|
||||
<input type="text" name="naziv" placeholder="npr. Memorija, Diskovi, Kablovi..."
|
||||
style="width:100%;">
|
||||
</div>
|
||||
<div>
|
||||
<label style="font-size:13px;color:var(--tekst-sporedni);display:block;margin-bottom:6px;">Opis</label>
|
||||
<input type="text" name="opis" placeholder="Kratak opis kategorije..."
|
||||
style="width:100%;">
|
||||
</div>
|
||||
<div style="display:flex;justify-content:flex-end;">
|
||||
<button type="submit"
|
||||
style="padding:8px 20px;background:var(--sb-akcent);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;">
|
||||
Dodaj kategoriju
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<!-- lista kategorija -->
|
||||
<div class="kartica" style="padding:0;overflow:hidden;">
|
||||
<div style="padding:14px 16px;border-bottom:0.5px solid var(--ivica);">
|
||||
<span style="font-size:14px;font-weight:500;color:var(--tekst-glavni);">Postojeće kategorije</span>
|
||||
</div>
|
||||
{{range .Kategorije}}
|
||||
<div style="display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:0.5px solid var(--ivica);">
|
||||
<div style="flex:1;">
|
||||
<div style="font-size:14px;color:var(--tekst-glavni);">{{.Naziv}}</div>
|
||||
{{if .Opis}}
|
||||
<div style="font-size:12px;color:var(--tekst-sporedni);margin-top:2px;">{{.Opis}}</div>
|
||||
{{end}}
|
||||
</div>
|
||||
<a href="/magacin/kategorije/obrisi/{{.ID}}"
|
||||
onclick="return confirm('Da li ste sigurni da želite da obrišete ovu kategoriju?')"
|
||||
style="padding:4px 10px;background:#dc2626;color:#fff;border-radius:6px;font-size:12px;text-decoration:none;white-space:nowrap;">
|
||||
Obriši
|
||||
</a>
|
||||
</div>
|
||||
{{else}}
|
||||
<div style="padding:24px;text-align:center;font-size:14px;color:var(--tekst-sporedni);">
|
||||
Nema kategorija. Dodaj prvu kategoriju iznad.
|
||||
</div>
|
||||
{{end}}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
{{end}}
|
||||
@@ -0,0 +1,111 @@
|
||||
{{template "base" .}}
|
||||
|
||||
{{define "naslov"}}Magacin — NTech{{end}}
|
||||
|
||||
{{define "sadrzaj"}}
|
||||
<div style="display:flex;flex-direction:column;gap:16px;">
|
||||
|
||||
{{if .Sacuvano}}
|
||||
<div class="poruka-uspeh">Artikal je uspešno sačuvan.</div>
|
||||
{{end}}
|
||||
{{if .Obrisan}}
|
||||
<div class="poruka-uspeh">Artikal je uspešno obrisan.</div>
|
||||
{{end}}
|
||||
|
||||
<!-- dugmad -->
|
||||
<div style="display:flex;gap:10px;flex-wrap:wrap;">
|
||||
<a href="/magacin/novi"
|
||||
style="padding:8px 16px;background:var(--sb-akcent);color:#fff;border-radius:8px;font-size:14px;font-weight:500;text-decoration:none;white-space:nowrap;">
|
||||
+ Novi artikal
|
||||
</a>
|
||||
<a href="/magacin/kategorije"
|
||||
style="padding:8px 16px;background:var(--sb-aktivan);color:#fff;border-radius:8px;font-size:14px;font-weight:500;text-decoration:none;white-space:nowrap;">
|
||||
Kategorije
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<!-- pretraga i filteri -->
|
||||
<form method="GET" action="/magacin" style="display:flex;flex-direction:column;gap:10px;">
|
||||
<input type="text" name="pretraga" value="{{.Filter.Pretraga}}"
|
||||
placeholder="Pretraži artikle..."
|
||||
style="width:100%;">
|
||||
<div style="display:flex;gap:10px;flex-wrap:wrap;align-items:center;">
|
||||
<select name="kategorija" style="flex:1;min-width:140px;">
|
||||
<option value="">Sve kategorije</option>
|
||||
{{range .Kategorije}}
|
||||
<option value="{{.ID}}" {{if eq (printf "%d" .ID) $.KategorijaIDStr}}selected{{end}}>{{.Naziv}}</option>
|
||||
{{end}}
|
||||
</select>
|
||||
<label style="display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--tekst-sporedni);cursor:pointer;padding:8px 12px;border:0.5px solid var(--ivica);border-radius:8px;background:var(--kartica);white-space:nowrap;">
|
||||
<input type="checkbox" name="kriticni" value="1" {{if .Filter.SamoKriticni}}checked{{end}}>
|
||||
Samo kritični
|
||||
</label>
|
||||
<button type="submit"
|
||||
style="padding:8px 16px;background:var(--sb-aktivan);color:#fff;border:none;border-radius:8px;font-size:14px;cursor:pointer;white-space:nowrap;">
|
||||
Traži
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<!-- tabela artikala -->
|
||||
<div class="kartica" style="padding:0;overflow:hidden;">
|
||||
<div style="overflow-x:auto;">
|
||||
<table style="width:100%;border-collapse:collapse;">
|
||||
<thead>
|
||||
<tr style="border-bottom:0.5px solid var(--ivica);">
|
||||
<th style="padding:12px 16px;text-align:left;font-size:12px;font-weight:500;color:var(--tekst-sporedni);">Naziv</th>
|
||||
<th style="padding:12px 16px;text-align:left;font-size:12px;font-weight:500;color:var(--tekst-sporedni);">Kategorija</th>
|
||||
<th style="padding:12px 16px;text-align:center;font-size:12px;font-weight:500;color:var(--tekst-sporedni);">Količina</th>
|
||||
<th style="padding:12px 16px;text-align:right;font-size:12px;font-weight:500;color:var(--tekst-sporedni);">Nabavna</th>
|
||||
<th style="padding:12px 16px;text-align:right;font-size:12px;font-weight:500;color:var(--tekst-sporedni);">Prodajna</th>
|
||||
<th style="padding:12px 16px;text-align:left;font-size:12px;font-weight:500;color:var(--tekst-sporedni);">Lokacija</th>
|
||||
<th style="padding:12px 16px;text-align:center;font-size:12px;font-weight:500;color:var(--tekst-sporedni);">Akcije</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{range .Artikli}}
|
||||
<tr style="border-bottom:0.5px solid var(--ivica);transition:background 0.15s;"
|
||||
onmouseover="this.style.background='var(--pozadina)'"
|
||||
onmouseout="this.style.background=''">
|
||||
<td style="padding:12px 16px;font-size:14px;color:var(--tekst-glavni);">{{.Naziv}}</td>
|
||||
<td style="padding:12px 16px;font-size:13px;color:var(--tekst-sporedni);">
|
||||
{{if .KategorijaNaziv}}{{.KategorijaNaziv}}{{else}}—{{end}}
|
||||
</td>
|
||||
<td style="padding:12px 16px;text-align:center;">
|
||||
<span style="font-size:14px;font-weight:500;color:{{if .KriticnaZaliha}}#dc2626{{else}}#16a34a{{end}};">
|
||||
{{.Kolicina}}
|
||||
</span>
|
||||
</td>
|
||||
<td style="padding:12px 16px;text-align:right;font-size:13px;color:var(--tekst-sporedni);">{{printf "%.0f" .NabavnaCena}} din</td>
|
||||
<td style="padding:12px 16px;text-align:right;font-size:14px;color:var(--tekst-glavni);">{{printf "%.0f" .ProdajnaCena}} din</td>
|
||||
<td style="padding:12px 16px;font-size:13px;color:var(--tekst-sporedni);">
|
||||
{{if .Lokacija}}{{.Lokacija}}{{else}}—{{end}}
|
||||
</td>
|
||||
<td style="padding:12px 16px;text-align:center;">
|
||||
<div style="display:flex;align-items:center;justify-content:center;gap:8px;">
|
||||
<a href="/magacin/izmeni/{{.ID}}"
|
||||
style="padding:4px 10px;background:var(--sb-aktivan);color:#fff;border-radius:6px;font-size:12px;text-decoration:none;">
|
||||
Izmeni
|
||||
</a>
|
||||
<a href="/magacin/obrisi/{{.ID}}"
|
||||
onclick="return confirm('Da li ste sigurni da želite da obrišete ovaj artikal?')"
|
||||
style="padding:4px 10px;background:#dc2626;color:#fff;border-radius:6px;font-size:12px;text-decoration:none;">
|
||||
Obriši
|
||||
</a>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
{{else}}
|
||||
<tr>
|
||||
<td colspan="7" style="padding:32px;text-align:center;font-size:14px;color:var(--tekst-sporedni);">
|
||||
Nema artikala. <a href="/magacin/novi" style="color:var(--sb-akcent);">Dodaj prvi artikal.</a>
|
||||
</td>
|
||||
</tr>
|
||||
{{end}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
{{end}}
|
||||
@@ -0,0 +1,115 @@
|
||||
{{template "base" .}}
|
||||
|
||||
{{define "naslov"}}{{if .Izmena}}Izmeni artikal{{else}}Novi artikal{{end}} — NTech{{end}}
|
||||
|
||||
{{define "sadrzaj"}}
|
||||
<div style="width:100%;">
|
||||
|
||||
<!-- nazad dugme -->
|
||||
<a href="/magacin" style="display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--tekst-sporedni);text-decoration:none;margin-bottom:20px;">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="15 18 9 12 15 6"/></svg>
|
||||
Nazad na magacin
|
||||
</a>
|
||||
|
||||
<div class="kartica">
|
||||
<div style="margin-bottom:20px;padding-bottom:14px;border-bottom:0.5px solid var(--ivica);">
|
||||
<span style="font-size:16px;font-weight:500;color:var(--tekst-glavni);">
|
||||
{{if .Izmena}}Izmeni artikal{{else}}Novi artikal{{end}}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
{{if .Greska}}
|
||||
<div style="background:var(--kartica);border:0.5px solid #dc2626;border-radius:8px;padding:10px 14px;margin-bottom:16px;font-size:13px;color:#dc2626;">
|
||||
{{.Greska}}
|
||||
</div>
|
||||
{{end}}
|
||||
|
||||
<form method="POST" action="{{if .Izmena}}/magacin/izmeni/{{.Artikal.ID}}{{else}}/magacin/novi{{end}}">
|
||||
<div style="display:flex;flex-direction:column;gap:14px;">
|
||||
|
||||
<!-- naziv -->
|
||||
<div>
|
||||
<label style="font-size:13px;color:var(--tekst-sporedni);display:block;margin-bottom:6px;">
|
||||
Naziv <span style="color:#dc2626;">*</span>
|
||||
</label>
|
||||
<input type="text" name="naziv" value="{{.Artikal.Naziv}}"
|
||||
placeholder="npr. RAM DDR4 8GB Kingston"
|
||||
style="width:100%;">
|
||||
</div>
|
||||
|
||||
<!-- kategorija -->
|
||||
<div>
|
||||
<label style="font-size:13px;color:var(--tekst-sporedni);display:block;margin-bottom:6px;">Kategorija</label>
|
||||
<select name="kategorija_id" style="width:100%;">
|
||||
<option value="">— bez kategorije —</option>
|
||||
{{range .Kategorije}}
|
||||
<option value="{{.ID}}" {{if eq (printf "%d" .ID) $.KategorijaIDStr}}selected{{end}}>{{.Naziv}}</option>
|
||||
{{end}}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<!-- opis -->
|
||||
<div>
|
||||
<label style="font-size:13px;color:var(--tekst-sporedni);display:block;margin-bottom:6px;">Opis</label>
|
||||
<textarea name="opis" rows="2"
|
||||
placeholder="Kratak opis artikla..."
|
||||
style="width:100%;resize:vertical;">{{.Artikal.Opis}}</textarea>
|
||||
</div>
|
||||
|
||||
<!-- količina i minimum -->
|
||||
<div class="forma-grid-2" style="display:grid;grid-template-columns:1fr 1fr;gap:12px;">
|
||||
<div>
|
||||
<label style="font-size:13px;color:var(--tekst-sporedni);display:block;margin-bottom:6px;">Količina na stanju</label>
|
||||
<input type="number" name="kolicina" value="{{.Artikal.Kolicina}}" min="0" style="width:100%;">
|
||||
</div>
|
||||
<div>
|
||||
<label style="font-size:13px;color:var(--tekst-sporedni);display:block;margin-bottom:6px;">Minimalna količina</label>
|
||||
<input type="number" name="kolicina_min" value="{{.Artikal.KolicinMin}}" min="0" style="width:100%;">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- cene -->
|
||||
<div class="forma-grid-2" style="display:grid;grid-template-columns:1fr 1fr;gap:12px;">
|
||||
<div>
|
||||
<label style="font-size:13px;color:var(--tekst-sporedni);display:block;margin-bottom:6px;">Nabavna cena (din)</label>
|
||||
<input type="number" name="nabavna_cena" value="{{.Artikal.NabavnaCena}}" min="0" step="0.01" style="width:100%;">
|
||||
</div>
|
||||
<div>
|
||||
<label style="font-size:13px;color:var(--tekst-sporedni);display:block;margin-bottom:6px;">Prodajna cena (din)</label>
|
||||
<input type="number" name="prodajna_cena" value="{{.Artikal.ProdajnaCena}}" min="0" step="0.01" style="width:100%;">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- lokacija -->
|
||||
<div>
|
||||
<label style="font-size:13px;color:var(--tekst-sporedni);display:block;margin-bottom:6px;">Lokacija u magacinu</label>
|
||||
<input type="text" name="lokacija" value="{{.Artikal.Lokacija}}"
|
||||
placeholder="npr. Polica A3, Kutija 2..."
|
||||
style="width:100%;">
|
||||
</div>
|
||||
|
||||
<!-- napomena -->
|
||||
<div>
|
||||
<label style="font-size:13px;color:var(--tekst-sporedni);display:block;margin-bottom:6px;">Napomena</label>
|
||||
<textarea name="napomena" rows="2"
|
||||
placeholder="Interna napomena..."
|
||||
style="width:100%;resize:vertical;">{{.Artikal.Napomena}}</textarea>
|
||||
</div>
|
||||
|
||||
<!-- dugmad -->
|
||||
<div style="display:flex;justify-content:flex-end;gap:10px;margin-top:6px;">
|
||||
<a href="/magacin"
|
||||
style="padding:9px 20px;border:0.5px solid var(--ivica);border-radius:8px;font-size:14px;color:var(--tekst-sporedni);text-decoration:none;">
|
||||
Odustani
|
||||
</a>
|
||||
<button type="submit"
|
||||
style="padding:9px 20px;background:var(--sb-akcent);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;">
|
||||
{{if .Izmena}}Sačuvaj izmene{{else}}Dodaj artikal{{end}}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
{{end}}
|
||||
@@ -3,7 +3,7 @@
|
||||
{{define "naslov"}}Podešavanja — NTech{{end}}
|
||||
|
||||
{{define "sadrzaj"}}
|
||||
<div style="max-width:720px;">
|
||||
<div style="width:100%;max-width:100%;">
|
||||
|
||||
{{if .Sacuvano}}
|
||||
<div class="poruka-uspeh">
|
||||
|
||||
Reference in New Issue
Block a user