Izmena u radu tema
This commit is contained in:
@@ -39,11 +39,13 @@
|
||||
<span class="nav-tooltip">Magacin</span>
|
||||
</a>
|
||||
|
||||
{{if index .Dozvole "nabavka.pregled"}}
|
||||
<a href="/nabavke" class="nav-stavka {{if eq .Stranica "nabavke"}}aktivan{{end}}">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><polyline points="14 2 14 8 20 8"/><line x1="16" y1="13" x2="8" y2="13"/><line x1="16" y1="17" x2="8" y2="17"/><polyline points="10 9 9 9 8 9"/></svg>
|
||||
<span>Nabavke</span>
|
||||
<span class="nav-tooltip">Nabavke</span>
|
||||
</a>
|
||||
{{end}}
|
||||
|
||||
<a href="/servis" class="nav-stavka {{if eq .Stranica "servis"}}aktivan{{end}}">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"/></svg>
|
||||
@@ -86,11 +88,41 @@
|
||||
<div class="nav-separator"></div>
|
||||
<div class="nav-oznaka">Nalog</div>
|
||||
|
||||
{{if index .Dozvole "tema.lokalno"}}
|
||||
<div x-data="{ otvoren: {{if or (eq .Stranica "profil") (eq .Stranica "profil-tema")}}true{{else}}false{{end}} }">
|
||||
<button type="button" @click="otvoren = !otvoren"
|
||||
class="nav-stavka {{if or (eq .Stranica "profil") (eq .Stranica "profil-tema")}}aktivan{{end}}"
|
||||
style="width:100%;background:none;border:none;cursor:pointer;">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"/><circle cx="12" cy="7" r="4"/></svg>
|
||||
<span>Moj profil</span>
|
||||
<span class="nav-strelica">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
|
||||
:style="`transition:transform 0.2s;transform:${otvoren?'rotate(180deg)':'rotate(0deg)'}`">
|
||||
<polyline points="6 9 12 15 18 9"/>
|
||||
</svg>
|
||||
</span>
|
||||
<span class="nav-tooltip">Moj profil</span>
|
||||
</button>
|
||||
<div class="nav-podmeni" x-show="otvoren" x-transition>
|
||||
<a href="/admin/profil" class="nav-stavka nav-podstavka {{if eq .Stranica "profil"}}aktivan{{end}}">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"/><circle cx="12" cy="7" r="4"/></svg>
|
||||
<span>Opšte</span>
|
||||
<span class="nav-tooltip">Opšte</span>
|
||||
</a>
|
||||
<a href="/profil/tema" class="nav-stavka nav-podstavka {{if eq .Stranica "profil-tema"}}aktivan{{end}}">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="3"/><path d="M12 1v4M12 19v4M4.22 4.22l2.83 2.83M16.95 16.95l2.83 2.83M1 12h4M19 12h4M4.22 19.78l2.83-2.83M16.95 7.05l2.83-2.83"/></svg>
|
||||
<span>Tema</span>
|
||||
<span class="nav-tooltip">Tema</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
{{else}}
|
||||
<a href="/admin/profil" class="nav-stavka {{if eq .Stranica "profil"}}aktivan{{end}}">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"/><circle cx="12" cy="7" r="4"/></svg>
|
||||
<span>Moj profil</span>
|
||||
<span class="nav-tooltip">Moj profil</span>
|
||||
</a>
|
||||
{{end}}
|
||||
|
||||
{{if or (eq .KorisnikUloga "superadmin") (eq .KorisnikUloga "admin")}}
|
||||
<a href="/admin/korisnici" class="nav-stavka {{if eq .Stranica "admin"}}aktivan{{end}}">
|
||||
@@ -108,6 +140,7 @@
|
||||
</a>
|
||||
{{end}}
|
||||
|
||||
{{if ne .KorisnikUloga "radnik"}}
|
||||
<div class="nav-separator"></div>
|
||||
<div class="nav-oznaka">Sistem</div>
|
||||
|
||||
@@ -145,6 +178,7 @@
|
||||
</div>
|
||||
</div>
|
||||
{{end}}
|
||||
{{end}}{{/* kraj ne radnik */}}
|
||||
</nav>
|
||||
|
||||
<div class="sidebar-dno">
|
||||
|
||||
@@ -12,10 +12,22 @@
|
||||
|
||||
<span class="topbar-naslov">{{.NaslovStranice}}</span>
|
||||
|
||||
{{if not .AppPozadina}}
|
||||
<div class="topbar-teme" style="display:flex;align-items:center;gap:8px;">
|
||||
<a href="/tema/tamna" class="tema-krug {{if eq .Tema "tamna"}}tema-krug-aktivan{{end}}" style="background:#1a1d27;" title="Tamna"></a>
|
||||
<a href="/tema/svetla" class="tema-krug {{if eq .Tema "svetla"}}tema-krug-aktivan{{end}}" style="background:#f0f2f5;border:1px solid #e2e6ed;" title="Svetla"></a>
|
||||
<form method="POST" action="/podesavanja/tema" style="margin:0;padding:0;">
|
||||
<input type="hidden" name="_csrf" value="{{.CsrfToken}}">
|
||||
<input type="hidden" name="tema" value="tamna">
|
||||
<button type="submit" class="tema-krug {{if eq .Tema "tamna"}}tema-krug-aktivan{{end}}"
|
||||
style="background:#1a1d27;border:none;padding:0;cursor:pointer;" title="Tamna"></button>
|
||||
</form>
|
||||
<form method="POST" action="/podesavanja/tema" style="margin:0;padding:0;">
|
||||
<input type="hidden" name="_csrf" value="{{.CsrfToken}}">
|
||||
<input type="hidden" name="tema" value="svetla">
|
||||
<button type="submit" class="tema-krug {{if eq .Tema "svetla"}}tema-krug-aktivan{{end}}"
|
||||
style="background:#f0f2f5;border:1px solid #e2e6ed;padding:0;cursor:pointer;" title="Svetla"></button>
|
||||
</form>
|
||||
</div>
|
||||
{{end}}
|
||||
|
||||
<div style="position:relative;" id="avatar-wrapper">
|
||||
<div class="avatar-korisnik" id="avatar-dugme" style="cursor:pointer;" title="{{.Korisnik}}">
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
.animiraj:nth-child(2) { animation-delay: 0.16s; }
|
||||
.animiraj:nth-child(3) { animation-delay: 0.22s; }
|
||||
.animiraj:nth-child(4) { animation-delay: 0.28s; }
|
||||
.animiraj:nth-child(5) { animation-delay: 0.34s; }
|
||||
</style>
|
||||
{{end}}
|
||||
|
||||
@@ -115,5 +116,18 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
{{if index .Dozvole "tema.lokalno"}}
|
||||
<div class="kartica animiraj" style="background:var(--pozadina);border:0.5px solid var(--ivica);">
|
||||
<div style="display:flex;align-items:center;gap:10px;">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="var(--sb-akcent)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="3"/><path d="M12 1v4M12 19v4M4.22 4.22l2.83 2.83M16.95 16.95l2.83 2.83M1 12h4M19 12h4M4.22 19.78l2.83-2.83M16.95 7.05l2.83-2.83"/></svg>
|
||||
<span style="font-size:14px;color:var(--tekst-glavni);">
|
||||
Podešavanja teme i pozadine nalaze se na
|
||||
<a href="/profil/tema" style="color:var(--sb-akcent);text-decoration:none;font-weight:500;">stranici Tema</a>.
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
{{end}}
|
||||
|
||||
</div>
|
||||
{{end}}
|
||||
|
||||
@@ -38,6 +38,7 @@
|
||||
<div style="font-size:12px;color:var(--tekst-sporedni);margin-top:4px;">Aktivnih servisa</div>
|
||||
</div>
|
||||
|
||||
{{if index .Dozvole "dashboard.prihod"}}
|
||||
<div class="kartica dash-stat animiraj">
|
||||
<div style="width:36px;height:36px;border-radius:8px;background:#fff7ed;display:flex;align-items:center;justify-content:center;margin-bottom:10px;">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="#ea580c" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="9" cy="21" r="1"/><circle cx="20" cy="21" r="1"/><path d="M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6"/></svg>
|
||||
@@ -45,6 +46,7 @@
|
||||
<div style="font-size:22px;font-weight:500;color:var(--tekst-glavni);">{{printf "%.0f" .PrihodOvogMeseca}} din</div>
|
||||
<div style="font-size:12px;color:var(--tekst-sporedni);margin-top:4px;">Prihod ovog meseca</div>
|
||||
</div>
|
||||
{{end}}
|
||||
|
||||
<div class="kartica dash-stat animiraj">
|
||||
<div style="width:36px;height:36px;border-radius:8px;background:#fef2f2;display:flex;align-items:center;justify-content:center;margin-bottom:10px;">
|
||||
|
||||
@@ -46,8 +46,12 @@
|
||||
|
||||
<!-- dugmad -->
|
||||
<div style="display:flex;gap:10px;flex-wrap:wrap;">
|
||||
{{if index .Dozvole "artikal.dodaj"}}
|
||||
<a href="/magacin/novi" class="btn-primarno">+ Novi artikal</a>
|
||||
{{end}}
|
||||
{{if index .Dozvole "kategorija.pregled"}}
|
||||
<a href="/magacin/kategorije" class="btn-primarno">Kategorije</a>
|
||||
{{end}}
|
||||
</div>
|
||||
|
||||
<!-- pretraga i filteri -->
|
||||
@@ -104,9 +108,11 @@
|
||||
</td>
|
||||
<td style="padding:12px 16px;text-align:center;">
|
||||
<div style="display:flex;align-items:center;justify-content:center;gap:8px;">
|
||||
{{if index $.Dozvole "artikal.izmeni"}}
|
||||
<a href="/magacin/izmeni/{{.ID}}" class="btn-primarno-malo">
|
||||
Izmeni
|
||||
</a>
|
||||
{{end}}
|
||||
{{if index $.Dozvole "artikal.obrisi"}}
|
||||
<a href="/magacin/obrisi/{{.ID}}" class="btn-obrisi-malo"
|
||||
data-potvrda="Da li ste sigurni da želite da obrišete ovaj artikal?">
|
||||
@@ -140,7 +146,9 @@
|
||||
{{end}}
|
||||
</div>
|
||||
<div style="display:flex;gap:8px;flex-shrink:0;">
|
||||
{{if index $.Dozvole "artikal.izmeni"}}
|
||||
<a href="/magacin/izmeni/{{.ID}}" class="btn-primarno-malo">Izmeni</a>
|
||||
{{end}}
|
||||
{{if index $.Dozvole "artikal.obrisi"}}
|
||||
<a href="/magacin/obrisi/{{.ID}}" class="btn-obrisi-malo"
|
||||
data-potvrda="Da li ste sigurni da želite da obrišete ovaj artikal?">
|
||||
|
||||
@@ -442,13 +442,13 @@
|
||||
<div>
|
||||
<label style="font-size:13px;color:var(--tekst-sporedni);display:block;margin-bottom:8px;">Izaberi temu</label>
|
||||
<div class="teme-grid" style="display:flex;gap:10px;">
|
||||
<label style="display:flex;align-items:center;gap:8px;padding:10px 14px;border:0.5px solid var(--ivica);border-radius:8px;cursor:pointer;flex:1;{{if eq .Tema "tamna"}}border-color:var(--sb-akcent);{{end}}">
|
||||
<input type="radio" name="tema" value="tamna" {{if eq .Tema "tamna"}}checked{{end}} style="accent-color:var(--sb-akcent);">
|
||||
<label style="display:flex;align-items:center;gap:8px;padding:10px 14px;border:0.5px solid var(--ivica);border-radius:8px;cursor:pointer;flex:1;{{if eq .GlobalnaTema "tamna"}}border-color:var(--sb-akcent);{{end}}">
|
||||
<input type="radio" name="globalna_tema" value="tamna" {{if eq .GlobalnaTema "tamna"}}checked{{end}} style="accent-color:var(--sb-akcent);">
|
||||
<div style="width:16px;height:16px;border-radius:50%;background:#1a1d27;flex-shrink:0;"></div>
|
||||
<span style="font-size:13px;color:var(--tekst-glavni);">Tamna</span>
|
||||
</label>
|
||||
<label style="display:flex;align-items:center;gap:8px;padding:10px 14px;border:0.5px solid var(--ivica);border-radius:8px;cursor:pointer;flex:1;{{if eq .Tema "svetla"}}border-color:var(--sb-akcent);{{end}}">
|
||||
<input type="radio" name="tema" value="svetla" {{if eq .Tema "svetla"}}checked{{end}} style="accent-color:var(--sb-akcent);">
|
||||
<label style="display:flex;align-items:center;gap:8px;padding:10px 14px;border:0.5px solid var(--ivica);border-radius:8px;cursor:pointer;flex:1;{{if eq .GlobalnaTema "svetla"}}border-color:var(--sb-akcent);{{end}}">
|
||||
<input type="radio" name="globalna_tema" value="svetla" {{if eq .GlobalnaTema "svetla"}}checked{{end}} style="accent-color:var(--sb-akcent);">
|
||||
<div style="width:16px;height:16px;border-radius:50%;background:#f0f2f5;border:0.5px solid #e2e6ed;flex-shrink:0;"></div>
|
||||
<span style="font-size:13px;color:var(--tekst-glavni);">Svetla</span>
|
||||
</label>
|
||||
|
||||
@@ -136,6 +136,7 @@
|
||||
|
||||
</div>
|
||||
|
||||
{{if index .Dozvole "podesavanja.login_pozadina"}}
|
||||
<!-- pozadinska slika login stranice -->
|
||||
<div class="kartica animiraj" style="margin-bottom:16px;">
|
||||
<div style="display:flex;align-items:center;gap:10px;margin-bottom:16px;padding-bottom:12px;border-bottom:0.5px solid var(--ivica);">
|
||||
@@ -223,41 +224,52 @@
|
||||
|
||||
</div><!-- /x-data -->
|
||||
</div>
|
||||
{{end}}
|
||||
|
||||
<!-- tema -->
|
||||
{{if index .Dozvole "tema.globalno"}}
|
||||
<!-- globalna tema -->
|
||||
<form method="POST" action="/podesavanja/sacuvaj">
|
||||
<input type="hidden" name="_next" value="/admin/podesavanja/izgled">
|
||||
<div class="kartica animiraj" style="margin-bottom:16px;">
|
||||
<div style="display:flex;align-items:center;gap:10px;margin-bottom:16px;padding-bottom:12px;border-bottom:0.5px solid var(--ivica);">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="var(--sb-akcent)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><circle cx="12" cy="12" r="6"/><circle cx="12" cy="12" r="2"/></svg>
|
||||
<span style="font-size:15px;font-weight:500;color:var(--tekst-glavni);">Tema</span>
|
||||
<span style="font-size:15px;font-weight:500;color:var(--tekst-glavni);">Globalna tema</span>
|
||||
</div>
|
||||
<div style="font-size:13px;color:var(--tekst-sporedni);margin-bottom:12px;">Primenuje se na sve korisnike koji ne koriste svoju lokalnu temu.</div>
|
||||
|
||||
<div>
|
||||
<label style="font-size:13px;color:var(--tekst-sporedni);display:block;margin-bottom:8px;">Izaberi temu</label>
|
||||
<div class="teme-grid" style="display:flex;gap:10px;">
|
||||
<label style="display:flex;align-items:center;gap:8px;padding:10px 14px;border:0.5px solid var(--ivica);border-radius:8px;cursor:pointer;flex:1;{{if eq .Tema "tamna"}}border-color:var(--sb-akcent);{{end}}">
|
||||
<input type="radio" name="tema" value="tamna" {{if eq .Tema "tamna"}}checked{{end}} style="accent-color:var(--sb-akcent);">
|
||||
<label style="display:flex;align-items:center;gap:8px;padding:10px 14px;border:0.5px solid var(--ivica);border-radius:8px;cursor:pointer;flex:1;{{if eq .GlobalnaTema "tamna"}}border-color:var(--sb-akcent);{{end}}">
|
||||
<input type="radio" name="globalna_tema" value="tamna" {{if eq .GlobalnaTema "tamna"}}checked{{end}} style="accent-color:var(--sb-akcent);">
|
||||
<div style="width:16px;height:16px;border-radius:50%;background:#1a1d27;flex-shrink:0;"></div>
|
||||
<span style="font-size:13px;color:var(--tekst-glavni);">Tamna</span>
|
||||
</label>
|
||||
<label style="display:flex;align-items:center;gap:8px;padding:10px 14px;border:0.5px solid var(--ivica);border-radius:8px;cursor:pointer;flex:1;{{if eq .Tema "svetla"}}border-color:var(--sb-akcent);{{end}}">
|
||||
<input type="radio" name="tema" value="svetla" {{if eq .Tema "svetla"}}checked{{end}} style="accent-color:var(--sb-akcent);">
|
||||
<label style="display:flex;align-items:center;gap:8px;padding:10px 14px;border:0.5px solid var(--ivica);border-radius:8px;cursor:pointer;flex:1;{{if eq .GlobalnaTema "svetla"}}border-color:var(--sb-akcent);{{end}}">
|
||||
<input type="radio" name="globalna_tema" value="svetla"
|
||||
{{if eq .GlobalnaTema "svetla"}}checked{{end}}
|
||||
style="accent-color:var(--sb-akcent);">
|
||||
<div style="width:16px;height:16px;border-radius:50%;background:#f0f2f5;border:0.5px solid #e2e6ed;flex-shrink:0;"></div>
|
||||
<span style="font-size:13px;color:var(--tekst-glavni);">Svetla</span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="display:flex;justify-content:flex-end;margin-top:20px;">
|
||||
<div style="display:flex;justify-content:flex-end;gap:10px;margin-top:20px;">
|
||||
<button type="submit" formaction="/podesavanja/tema/globalno"
|
||||
style="background:transparent;color:var(--sb-akcent);border:0.5px solid var(--sb-akcent);padding:10px 24px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:opacity 0.2s;"
|
||||
onmouseover="this.style.opacity='0.75'" onmouseout="this.style.opacity='1'"
|
||||
title="Primeni ovu temu na sve korisnike, poništi njihove lokalne teme">
|
||||
Primeni globalno
|
||||
</button>
|
||||
<button type="submit"
|
||||
style="background:var(--sb-akcent);color:#fff;border:none;padding:10px 24px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:opacity 0.2s;"
|
||||
onmouseover="this.style.opacity='0.85'" onmouseout="this.style.opacity='1'">
|
||||
Sačuvaj izgled
|
||||
Sačuvaj
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
{{end}}
|
||||
|
||||
</div>
|
||||
{{end}}
|
||||
|
||||
@@ -57,6 +57,23 @@
|
||||
style="width:100%;resize:vertical;">{{.Podsetnik.Napomena}}</textarea>
|
||||
</div>
|
||||
|
||||
{{if .Korisnici}}
|
||||
<div>
|
||||
<label style="font-size:13px;color:var(--tekst-sporedni);display:block;margin-bottom:6px;">
|
||||
Dodeli korisniku
|
||||
</label>
|
||||
<select name="korisnik_id" style="width:100%;">
|
||||
<option value="">— Nije dodeljeno —</option>
|
||||
{{range .Korisnici}}
|
||||
<option value="{{.ID}}"
|
||||
{{if eq $.Podsetnik.KorisnikIDVal .ID}}selected{{end}}>
|
||||
{{.KorisnickoIme}} ({{.Uloga}})
|
||||
</option>
|
||||
{{end}}
|
||||
</select>
|
||||
</div>
|
||||
{{end}}
|
||||
|
||||
<div style="display:flex;justify-content:flex-end;gap:10px;margin-top:4px;">
|
||||
<a href="/podsetnici" class="btn-sekundarno">Odustani</a>
|
||||
<button type="submit" class="btn-primarno">
|
||||
|
||||
@@ -89,9 +89,18 @@
|
||||
{{printf "%.2f" .Ukupno}} din
|
||||
</td>
|
||||
<td style="padding:12px 16px;text-align:center;">
|
||||
<a href="/prodaja/{{.ID}}" class="btn-primarno-malo">
|
||||
Detalji
|
||||
</a>
|
||||
<div style="display:flex;align-items:center;justify-content:center;gap:8px;">
|
||||
<a href="/prodaja/{{.ID}}" class="btn-primarno-malo">Detalji</a>
|
||||
{{if index $.Dozvole "prodaja.storno"}}
|
||||
<form method="POST" action="/prodaja/storno/{{.ID}}" style="margin:0;padding:0;">
|
||||
<input type="hidden" name="_csrf" value="{{$.CsrfToken}}">
|
||||
<button type="submit" class="btn-obrisi-malo"
|
||||
data-potvrda="Da li ste sigurni da želite da stornirate ovaj nalog? Artikli će biti vraćeni na stanje.">
|
||||
Storno
|
||||
</button>
|
||||
</form>
|
||||
{{end}}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
{{else}}
|
||||
|
||||
@@ -0,0 +1,201 @@
|
||||
{{template "base" .}}
|
||||
|
||||
{{define "naslov"}}Moja tema — NTech{{end}}
|
||||
|
||||
{{define "dodatni-css"}}
|
||||
<style>
|
||||
.animiraj:nth-child(1) { animation-delay: 0.10s; }
|
||||
.animiraj:nth-child(2) { animation-delay: 0.16s; }
|
||||
.animiraj:nth-child(3) { animation-delay: 0.22s; }
|
||||
</style>
|
||||
{{end}}
|
||||
|
||||
{{define "sadrzaj"}}
|
||||
<div style="width:100%;max-width:100%;">
|
||||
|
||||
<!-- kartica: moja tema -->
|
||||
<div class="kartica animiraj" x-data="{
|
||||
globalnu: {{if .KoristiGlobalnuTemu}}true{{else}}false{{end}},
|
||||
tema: '{{if .LokalnaTema}}{{.LokalnaTema}}{{else}}tamna{{end}}'
|
||||
}" style="margin-bottom:16px;">
|
||||
<div style="font-size:15px;font-weight:500;color:var(--tekst-glavni);margin-bottom:16px;padding-bottom:12px;border-bottom:0.5px solid var(--ivica);">
|
||||
Moja tema
|
||||
</div>
|
||||
|
||||
{{if not .AppPozadina}}
|
||||
<div style="display:flex;align-items:center;justify-content:space-between;opacity:0.5;cursor:not-allowed;"
|
||||
title="Administrator nije postavio pozadinsku sliku">
|
||||
<div>
|
||||
<div style="font-size:14px;color:var(--tekst-glavni);font-weight:500;">Koristi globalnu temu</div>
|
||||
<div style="font-size:12px;color:var(--tekst-sporedni);margin-top:2px;">Nema aktivne pozadinske slike</div>
|
||||
</div>
|
||||
<label style="position:relative;display:inline-block;width:44px;height:24px;pointer-events:none;">
|
||||
<span style="position:absolute;inset:0;border-radius:24px;background:var(--ivica);"></span>
|
||||
<span style="position:absolute;left:2px;top:2px;width:20px;height:20px;background:#fff;border-radius:50%;"></span>
|
||||
</label>
|
||||
</div>
|
||||
{{else}}
|
||||
<form method="POST" action="/profil/tema">
|
||||
<input type="hidden" name="_csrf" value="{{.CsrfToken}}">
|
||||
<div style="display:flex;flex-direction:column;gap:14px;">
|
||||
|
||||
<!-- svič: globalnu=true → koristi globalnu; globalnu=false → koristi lokalnu -->
|
||||
<div style="display:flex;align-items:center;justify-content:space-between;">
|
||||
<div>
|
||||
<div style="font-size:14px;color:var(--tekst-glavni);font-weight:500;">Koristi globalnu temu</div>
|
||||
<div style="font-size:12px;color:var(--tekst-sporedni);margin-top:2px;" x-text="globalnu ? 'Primenjuje se globalna tema sistema' : 'Primenjuje se vaša lična tema'"></div>
|
||||
</div>
|
||||
<label style="position:relative;display:inline-block;width:44px;height:24px;cursor:pointer;">
|
||||
<input type="checkbox" style="opacity:0;width:0;height:0;position:absolute;"
|
||||
x-model="globalnu">
|
||||
<span :style="'position:absolute;inset:0;border-radius:24px;transition:0.2s;background:' + (globalnu ? 'var(--sb-akcent)' : 'var(--ivica)')"></span>
|
||||
<span :style="'position:absolute;left:' + (globalnu ? '22px' : '2px') + ';top:2px;width:20px;height:20px;background:#fff;border-radius:50%;transition:0.2s;'"></span>
|
||||
</label>
|
||||
<!-- globalnu=true → koristi_lokalnu_temu=0; globalnu=false → koristi_lokalnu_temu=1 -->
|
||||
<input type="hidden" name="koristi_lokalnu_temu" :value="globalnu ? '0' : '1'">
|
||||
</div>
|
||||
|
||||
<!-- radio dugmići vidljivi samo kada je lokalna tema aktivna -->
|
||||
<div x-show="!globalnu" x-transition style="padding:12px;background:var(--pozadina);border-radius:8px;border:0.5px solid var(--ivica);">
|
||||
<div style="font-size:13px;color:var(--tekst-sporedni);margin-bottom:10px;">Izaberite temu:</div>
|
||||
<div style="display:flex;gap:16px;">
|
||||
<label style="display:flex;align-items:center;gap:8px;cursor:pointer;font-size:14px;color:var(--tekst-glavni);">
|
||||
<input type="radio" name="lokalna_tema" value="tamna" x-model="tema">
|
||||
Tamna
|
||||
</label>
|
||||
<label style="display:flex;align-items:center;gap:8px;cursor:pointer;font-size:14px;color:var(--tekst-glavni);">
|
||||
<input type="radio" name="lokalna_tema" value="svetla" x-model="tema">
|
||||
Svetla
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<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;">
|
||||
Sačuvaj
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
{{end}}
|
||||
</div>
|
||||
|
||||
<!-- kartica: moja pozadinska slika -->
|
||||
<div class="kartica animiraj" style="margin-bottom:16px;">
|
||||
<div style="display:flex;align-items:center;gap:10px;margin-bottom:16px;padding-bottom:12px;border-bottom:0.5px solid var(--ivica);">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="var(--sb-akcent)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2"/><circle cx="8.5" cy="8.5" r="1.5"/><polyline points="21 15 16 10 5 21"/></svg>
|
||||
<span style="font-size:15px;font-weight:500;color:var(--tekst-glavni);">Moja pozadinska slika</span>
|
||||
</div>
|
||||
|
||||
{{if .LokalnaPozadina}}
|
||||
<div style="display:flex;align-items:center;gap:12px;margin-bottom:14px;">
|
||||
<img src="{{.LokalnaPozadina}}" alt="Trenutna lična pozadina"
|
||||
style="width:120px;height:70px;object-fit:cover;border-radius:6px;border:0.5px solid var(--ivica);flex-shrink:0;">
|
||||
<form method="POST" action="/profil/pozadina/ukloni">
|
||||
<input type="hidden" name="_csrf" value="{{.CsrfToken}}">
|
||||
<button type="submit"
|
||||
style="padding:7px 14px;background:transparent;border:0.5px solid #fca5a5;border-radius:8px;color:#dc2626;font-size:13px;cursor:pointer;"
|
||||
data-potvrda="Ukloniti ličnu pozadinsku sliku?">
|
||||
Ukloni
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
{{end}}
|
||||
|
||||
<form method="POST" action="/profil/pozadina" enctype="multipart/form-data">
|
||||
<input type="hidden" name="_csrf" value="{{.CsrfToken}}">
|
||||
<div style="display:flex;align-items:center;gap:8px;margin-bottom:6px;">
|
||||
<input type="file" id="lok-bg-file" name="lokalna_pozadina" accept=".jpg,.jpeg,.png,.webp"
|
||||
style="display:none;">
|
||||
<label for="lok-bg-file"
|
||||
style="display:inline-flex;align-items:center;padding:8px 14px;background:var(--pozadina);border:0.5px solid var(--ivica);border-radius:8px;font-size:13px;color:var(--tekst-sporedni);cursor:pointer;user-select:none;">
|
||||
Odaberi sliku
|
||||
</label>
|
||||
<button type="submit"
|
||||
style="padding:8px 16px;background:var(--sb-akcent);color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;">
|
||||
Otpremi sliku
|
||||
</button>
|
||||
</div>
|
||||
<div style="font-size:12px;color:var(--tekst-sporedni);">JPG, PNG ili WebP — maksimum 5 MB</div>
|
||||
</form>
|
||||
|
||||
<div x-data="{ blur: {{.LokalnaPozadinaBlur}}, opacity: {{.LokalnaPozadinaOpacity}}, blurPozadine: {{.LokalnaPozadinaBlurPozadine}} }"
|
||||
style="margin-top:20px;">
|
||||
|
||||
<div style="position:relative;width:100%;height:180px;border-radius:8px;overflow:hidden;">
|
||||
<div :style="`position:absolute;inset:0;{{if .LokalnaPozadina}}background:url('{{.LokalnaPozadina}}') center/cover;{{else}}background:#1a2033;{{end}}z-index:0;filter:blur(${blurPozadine}px);-webkit-filter:blur(${blurPozadine}px);transform:scale(1.05);`"></div>
|
||||
<div :style="`position:absolute;inset:0;z-index:1;pointer-events:none;background:rgba(0,0,0,${opacity/100})`"></div>
|
||||
<div :style="`position:absolute;top:0;left:0;bottom:0;z-index:2;width:56px;background:rgba(255,255,255,0.10);backdrop-filter:blur(${blur}px);-webkit-backdrop-filter:blur(${blur}px);border-right:1px solid rgba(255,255,255,0.15);display:flex;flex-direction:column;align-items:center;padding-top:10px;gap:12px`">
|
||||
<div style="width:20px;height:20px;border-radius:50%;background:rgba(255,255,255,0.25);flex-shrink:0;"></div>
|
||||
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="rgba(255,255,255,0.85)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="flex-shrink:0;"><rect x="3" y="3" width="7" height="9" rx="1"/><rect x="14" y="3" width="7" height="5" rx="1"/><rect x="14" y="12" width="7" height="9" rx="1"/><rect x="3" y="16" width="7" height="5" rx="1"/></svg>
|
||||
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="rgba(255,255,255,0.85)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="flex-shrink:0;"><path d="M14.7 6.3a1 1 0 000 1.4l1.6 1.6a1 1 0 001.4 0l3.77-3.77a6 6 0 01-7.94 7.94l-6.91 6.91a2.12 2.12 0 01-3-3l6.91-6.91a6 6 0 017.94-7.94l-3.76 3.76z"/></svg>
|
||||
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="rgba(255,255,255,0.85)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="flex-shrink:0;"><path d="M17 21v-2a4 4 0 00-4-4H5a4 4 0 00-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M23 21v-2a4 4 0 00-3-3.87M16 3.13a4 4 0 010 7.75"/></svg>
|
||||
</div>
|
||||
<div style="position:absolute;top:12px;left:68px;right:12px;z-index:2;display:flex;flex-direction:column;gap:7px;">
|
||||
<div :style="`height:36px;border-radius:6px;background:rgba(255,255,255,0.10);backdrop-filter:blur(${blur}px);-webkit-backdrop-filter:blur(${blur}px);border:1px solid rgba(255,255,255,0.15);display:flex;flex-direction:column;justify-content:center;padding:0 10px`">
|
||||
<div style="display:block;font-size:9px;color:white;opacity:0.7;line-height:1.2;">Artikli</div>
|
||||
<div style="display:block;font-size:13px;color:white;font-weight:500;line-height:1.3;">1.284</div>
|
||||
</div>
|
||||
<div :style="`height:36px;border-radius:6px;background:rgba(255,255,255,0.10);backdrop-filter:blur(${blur}px);-webkit-backdrop-filter:blur(${blur}px);border:1px solid rgba(255,255,255,0.15);display:flex;flex-direction:column;justify-content:center;padding:0 10px`">
|
||||
<div style="display:block;font-size:9px;color:white;opacity:0.7;line-height:1.2;">Servis</div>
|
||||
<div style="display:block;font-size:13px;color:white;font-weight:500;line-height:1.3;">47</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="margin-top:16px;">
|
||||
<div style="display:flex;justify-content:space-between;margin-bottom:6px;">
|
||||
<span style="font-size:13px;color:var(--tekst-sporedni);">Zamućenje pozadine</span>
|
||||
<span style="font-size:13px;color:var(--tekst-glavni);font-weight:500;" x-text="blurPozadine + 'px'"></span>
|
||||
</div>
|
||||
<input type="range" x-model.number="blurPozadine" min="0" max="20" step="1"
|
||||
style="width:100%;accent-color:var(--sb-akcent);cursor:pointer;">
|
||||
</div>
|
||||
<div style="margin-top:12px;">
|
||||
<div style="display:flex;justify-content:space-between;margin-bottom:6px;">
|
||||
<span style="font-size:13px;color:var(--tekst-sporedni);">Zamućenje stakla</span>
|
||||
<span style="font-size:13px;color:var(--tekst-glavni);font-weight:500;" x-text="blur + 'px'"></span>
|
||||
</div>
|
||||
<input type="range" x-model.number="blur" min="0" max="20" step="1"
|
||||
style="width:100%;accent-color:var(--sb-akcent);cursor:pointer;">
|
||||
</div>
|
||||
<div style="margin-top:12px;">
|
||||
<div style="display:flex;justify-content:space-between;margin-bottom:6px;">
|
||||
<span style="font-size:13px;color:var(--tekst-sporedni);">Zatamnjivanje</span>
|
||||
<span style="font-size:13px;color:var(--tekst-glavni);font-weight:500;" x-text="opacity + '%'"></span>
|
||||
</div>
|
||||
<input type="range" x-model.number="opacity" min="0" max="80" step="1"
|
||||
style="width:100%;accent-color:var(--sb-akcent);cursor:pointer;">
|
||||
</div>
|
||||
<form method="POST" action="/profil/pozadina/stilovi" style="margin-top:16px;">
|
||||
<input type="hidden" name="_csrf" value="{{.CsrfToken}}">
|
||||
<input type="hidden" name="lokalna_pozadina_opacity" :value="opacity">
|
||||
<input type="hidden" name="lokalna_pozadina_blur" :value="blur">
|
||||
<input type="hidden" name="lokalna_pozadina_blur_pozadine" :value="blurPozadine">
|
||||
<button type="submit"
|
||||
style="padding:9px 22px;background:var(--sb-akcent);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;">
|
||||
Sačuvaj izgled
|
||||
</button>
|
||||
</form>
|
||||
|
||||
</div><!-- /x-data -->
|
||||
</div>
|
||||
|
||||
{{if index .Dozvole "podesavanja.login_pozadina"}}
|
||||
<!-- kartica: pozadinska slika prijave — samo za admin/superadmin -->
|
||||
<div class="kartica animiraj" style="margin-bottom:16px;">
|
||||
<div style="display:flex;align-items:center;gap:10px;margin-bottom:16px;padding-bottom:12px;border-bottom:0.5px solid var(--ivica);">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="var(--sb-akcent)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2"/><circle cx="8.5" cy="8.5" r="1.5"/><polyline points="21 15 16 10 5 21"/></svg>
|
||||
<span style="font-size:15px;font-weight:500;color:var(--tekst-glavni);">Pozadinska slika prijave</span>
|
||||
</div>
|
||||
<p style="font-size:13px;color:var(--tekst-sporedni);margin:0 0 12px;">
|
||||
Ova slika se prikazuje na stranici za prijavu svim korisnicima.
|
||||
Podešavanja su dostupna u
|
||||
<a href="/admin/podesavanja/izgled" style="color:var(--sb-akcent);text-decoration:none;">Podešavanjima → Izgled</a>.
|
||||
</p>
|
||||
</div>
|
||||
{{end}}
|
||||
|
||||
</div>
|
||||
{{end}}
|
||||
@@ -36,6 +36,11 @@
|
||||
filter: blur({{.AppPozadinaBlurPozadine}}px);
|
||||
pointer-events: none;
|
||||
z-index: 0;
|
||||
animation: appBgFadeIn 0.35s ease forwards;
|
||||
}
|
||||
@keyframes appBgFadeIn {
|
||||
from { opacity: 0; }
|
||||
to { opacity: 1; }
|
||||
}
|
||||
.app-overlay {
|
||||
position: fixed;
|
||||
@@ -122,19 +127,6 @@
|
||||
meni.style.background = 'var(--kartica)';
|
||||
});
|
||||
</script>
|
||||
{{if ne .Tema "tamna"}}
|
||||
<script>window.location.replace('/tema/tamna');</script>
|
||||
{{end}}
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
var poruka = 'Uklonite pozadinsku sliku da biste mogli da menjate temu';
|
||||
document.querySelectorAll('.tema-krug').forEach(function(el) {
|
||||
el.style.pointerEvents = 'none';
|
||||
el.style.opacity = '0.4';
|
||||
el.title = poruka;
|
||||
});
|
||||
});
|
||||
</script>
|
||||
{{end}}
|
||||
</head>
|
||||
<body>
|
||||
|
||||
Reference in New Issue
Block a user