From 7fe40096cc4fc501cf25b1f50929908b31b4c5dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dalibor=20Markovi=C4=87?= Date: Wed, 1 Jul 2026 16:57:09 +0200 Subject: [PATCH] =?UTF-8?q?Servis:=20dogruzavanje=20rezultata=20pri=20pret?= =?UTF-8?q?razi=20postoje=C4=87eg=20klijenta?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Dropdown za pretragu klijenta u Novom nalogu je imao tvrdi limit od 100 rezultata. Sada radi po istom obrascu kao u Novoj prodaji — učitava po 30, i dogrejava sledećih 30 kad korisnik skroluje do dna liste. --- web/static/js/ntech.js | 25 +++++++++++++++++++++--- web/templates/stranice/servis_forma.html | 5 +++-- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/web/static/js/ntech.js b/web/static/js/ntech.js index 54c319f..ca68fe5 100644 --- a/web/static/js/ntech.js +++ b/web/static/js/ntech.js @@ -303,6 +303,7 @@ document.addEventListener('alpine:init', () => { izabrani: null, izabraniId: 0, prikaziListu: false, + limitKlijenata: 30, // polja novog klijenta (vezana x-model-om na inpute) noviIme: '', noviPrezime: '', @@ -326,8 +327,9 @@ document.addEventListener('alpine:init', () => { get vrednostKlijentId() { return this.izabraniId || '' }, - // filtrira klijente po tipu i početnim karakterima unosa (najviše 8) - get filtrirani() { + // svi klijenti koji odgovaraju tipu/pretrazi (bez ograničenja) — zna se da li ima + // još rezultata za dogruzavanje pri skrolu + get svihFiltriranih() { const q = this.pretraga.trim().toLowerCase() const tip = this.tip return this.klijenti.filter(k => { @@ -338,7 +340,19 @@ document.addEventListener('alpine:init', () => { const punoIme = ((k.Ime || '') + ' ' + (k.Prezime || '')).trim() const polja = (tip === 'pravno') ? [k.NazivFirme] : [punoIme, k.Ime, k.Prezime] return polja.some(p => (p || '').toLowerCase().startsWith(q)) - }).slice(0, 100) + }) + }, + get filtrirani() { + return this.svihFiltriranih.slice(0, this.limitKlijenata) + }, + get imaJosKlijenata() { + return this.limitKlijenata < this.svihFiltriranih.length + }, + ucitajViseKlijenata(e) { + const el = e.target + if (el.scrollTop + el.clientHeight >= el.scrollHeight - 40 && this.imaJosKlijenata) { + this.limitKlijenata += 30 + } }, jeTip(t) { return this.tip === t @@ -387,9 +401,14 @@ document.addEventListener('alpine:init', () => { this.tip = t this.ocisti() this.pretraga = '' + this.limitKlijenata = 30 this.noviIme = '' this.noviPrezime = '' this.noviNaziv = '' + }, + pretragaPromenjena() { + this.prikaziListu = true + this.limitKlijenata = 30 } })) diff --git a/web/templates/stranice/servis_forma.html b/web/templates/stranice/servis_forma.html index 5974d46..bca21d3 100644 --- a/web/templates/stranice/servis_forma.html +++ b/web/templates/stranice/servis_forma.html @@ -151,10 +151,10 @@
-
+
Skrolujte za još rezultata...