Ograničenje konekcija BE emulatora, sopstveni kontekst fiskalizacije nezavisan od prekida zahteva, validacija porta na setup stranici, serverska optimizacija kratke pretrage bez eval-a, testovi
This commit is contained in:
@@ -21,6 +21,18 @@ window.addEventListener('pageshow', function(e) {
|
||||
});
|
||||
});
|
||||
|
||||
// otvara nativni date/time picker na BILO KOJI klik unutar polja, ne samo na
|
||||
// malu kalendar/sat ikonicu koju browser crta — u Firefoxu (i na nekim
|
||||
// sistemima/rezolucijama) ta ikonica ima vrlo uzak klik-hitbox, pa korisnik
|
||||
// klikne tik pored nje i pomisli da "klik na kalendar ne radi ništa".
|
||||
// showPicker() zahteva user-gesture kontekst — click handler to ispunjava.
|
||||
document.addEventListener('click', function(e) {
|
||||
var el = e.target.closest('input[type="date"], input[type="time"], input[type="datetime-local"], input[type="month"], input[type="week"]');
|
||||
if (el && typeof el.showPicker === 'function') {
|
||||
try { el.showPicker(); } catch (err) { /* readonly/disabled i sl. — ignoriši */ }
|
||||
}
|
||||
});
|
||||
|
||||
// otvara/zatvara podmeni u sidebaru — radi i kad je sidebar skupljen i kad je proširen
|
||||
// (sidebar ostaje u zatečenom stanju). U isto vreme sme biti otvoren samo jedan podmeni.
|
||||
function ntechTogglePodmeni(btn) {
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
<input type="text" name="pretraga" value="{{.Pretraga}}"
|
||||
placeholder="Pretraži dobavljače..."
|
||||
style="flex:1;"
|
||||
hx-trigger="keyup[target.value.length==0||target.value.length>=3] changed delay:150ms, search"
|
||||
hx-trigger="keyup changed delay:150ms, search"
|
||||
hx-get="/dobavljaci" hx-target="#dobavljaci-rezultati" hx-select="#dobavljaci-rezultati" hx-swap="innerHTML" hx-push-url="true">
|
||||
</form>
|
||||
</div>
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
<canvas id="grafikon-prihod"></canvas>
|
||||
</div>
|
||||
|
||||
<div style="overflow-x:auto;">
|
||||
<div class="tabela-skrol">
|
||||
<table class="tabela">
|
||||
<thead>
|
||||
<tr style="border-bottom:0.5px solid var(--ivica);">
|
||||
@@ -98,7 +98,7 @@
|
||||
<div class="kartica izv-sekcija animiraj">
|
||||
<div class="izv-naslov">Stari otvoreni nalozi — bez završetka duže od 14 dana</div>
|
||||
{{if .StariNalozi}}
|
||||
<div style="overflow-x:auto;">
|
||||
<div class="tabela-skrol">
|
||||
<table class="tabela">
|
||||
<thead>
|
||||
<tr style="border-bottom:0.5px solid var(--ivica);">
|
||||
@@ -143,6 +143,7 @@
|
||||
<div class="kartica izv-grid-kartica animiraj">
|
||||
<div class="izv-naslov">Najprodavaniji artikli — top 10</div>
|
||||
{{if .TopArtikli}}
|
||||
<div class="tabela-skrol">
|
||||
<table class="tabela">
|
||||
<thead>
|
||||
<tr style="border-bottom:0.5px solid var(--ivica);">
|
||||
@@ -168,6 +169,7 @@
|
||||
{{end}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{{else}}
|
||||
<div style="font-size:13px;color:var(--tekst-sporedni);padding:8px 0;">Nema podataka o prodaji.</div>
|
||||
{{end}}
|
||||
@@ -177,6 +179,7 @@
|
||||
<div class="kartica izv-grid-kartica animiraj">
|
||||
<div class="izv-naslov">Najvažniji klijenti — top 10</div>
|
||||
{{if .TopKlijenti}}
|
||||
<div class="tabela-skrol">
|
||||
<table class="tabela">
|
||||
<thead>
|
||||
<tr style="border-bottom:0.5px solid var(--ivica);">
|
||||
@@ -199,6 +202,7 @@
|
||||
{{end}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{{else}}
|
||||
<div style="font-size:13px;color:var(--tekst-sporedni);padding:8px 0;">Nema podataka o klijentima.</div>
|
||||
{{end}}
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
|
||||
<div class="kartica animiraj">
|
||||
{{if .Zapisi}}
|
||||
<div class="tabela-omotac">
|
||||
<div class="tabela-omotac tabela-skrol">
|
||||
<table class="tabela">
|
||||
<thead>
|
||||
<tr>
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
<input type="text" name="pretraga" value="{{.Filter.Pretraga}}"
|
||||
placeholder="Pretraži po nazivu, šifri, barkodu, lokaciji..."
|
||||
style="width:100%;"
|
||||
hx-trigger="keyup[target.value.length==0||target.value.length>=3] changed delay:150ms, search"
|
||||
hx-trigger="keyup changed delay:150ms, search"
|
||||
hx-get="{{.OsnovniUrl}}" hx-include="closest form" hx-target="#magacin-rezultati" hx-select="#magacin-rezultati" hx-swap="innerHTML" hx-push-url="true">
|
||||
<div style="display:flex;gap:10px;flex-wrap:wrap;align-items:center;">
|
||||
<select name="kategorija" style="flex:1;min-width:140px;"
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
<input type="text" name="pretraga" value="{{.Pretraga}}"
|
||||
placeholder="Pretraži troškove po nazivu ili šifri..."
|
||||
style="width:100%;"
|
||||
hx-get="/troskovi" hx-trigger="keyup[target.value.length==0||target.value.length>=3] changed delay:150ms, search"
|
||||
hx-get="/troskovi" hx-trigger="keyup changed delay:150ms, search"
|
||||
hx-target="#troskovi-rezultati" hx-select="#troskovi-rezultati" hx-swap="innerHTML" hx-push-url="true">
|
||||
</form>
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
<input type="text" name="pretraga" value="{{.Pretraga}}"
|
||||
placeholder="Pretraži usluge po nazivu ili šifri..."
|
||||
style="width:100%;"
|
||||
hx-get="/usluge" hx-trigger="keyup[target.value.length==0||target.value.length>=3] changed delay:150ms, search"
|
||||
hx-get="/usluge" hx-trigger="keyup changed delay:150ms, search"
|
||||
hx-target="#usluge-rezultati" hx-select="#usluge-rezultati" hx-swap="innerHTML" hx-push-url="true">
|
||||
</form>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user