Servis: dogruzavanje rezultata pri pretrazi postojećeg klijenta

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.
This commit is contained in:
2026-07-01 16:57:09 +02:00
parent e7a130bb90
commit 7fe40096cc
2 changed files with 25 additions and 5 deletions
+22 -3
View File
@@ -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
}
}))