Paginacija, interaktivna pretraga i optimizacija prikaza
- Dodata server-side paginacija za magacin (127 artikala) i klijente (1040) — Limit/Offset u ArtikalFilter i KlijentFilter, 100 po stranici — PrebrojiPoFilteru za izračunavanje ukupnog broja stranica - Interaktivna pretraga (search-as-you-type) sa HTMX: — hx-trigger="keyup changed delay:300ms" na polju pretrage — HTMX menja samo #magacin-rezultati / #klijenti-rezultati — Polje pretrage ostaje u fokusu tokom osvežavanja - Popravljena pretraga klijenata po imenu i prezimenu: — Dodato (ime || ' ' || prezime) LIKE u sva tri upita — "Ivana Lazić" sada pronalazi klijenta - CSS optimizacije za velike liste: — content-visibility: auto na redovima tabela i karticama — contain-intrinsic-size za stabilan scroll — animation-delay produžen do 20. reda / 10. kartice
This commit is contained in:
@@ -10,6 +10,7 @@ import (
|
||||
// ArtikalRepository definiše operacije nad artiklima
|
||||
type ArtikalRepository interface {
|
||||
Lista(ctx context.Context, filter ArtikalFilter) ([]model.ArtikalSaKategorijom, error)
|
||||
PrebrojiPoFilteru(ctx context.Context, filter ArtikalFilter) (int, error)
|
||||
DohvatiID(ctx context.Context, id int64) (*model.Artikal, error)
|
||||
Kreiraj(ctx context.Context, a *model.Artikal) (int64, error)
|
||||
Izmeni(ctx context.Context, a *model.Artikal) error
|
||||
@@ -78,6 +79,8 @@ type ArtikalFilter struct {
|
||||
Pretraga string
|
||||
KategorijaID *int64
|
||||
SamoKriticni bool
|
||||
Limit int
|
||||
Offset int
|
||||
}
|
||||
|
||||
// NabavkaRepository definiše operacije nad nabavkama
|
||||
@@ -99,9 +102,18 @@ type DobavljacRepository interface {
|
||||
Obrisi(ctx context.Context, id int64) error
|
||||
}
|
||||
|
||||
// KlijentFilter definiše parametre za filtriranje liste klijenata
|
||||
type KlijentFilter struct {
|
||||
Pretraga string
|
||||
Limit int
|
||||
Offset int
|
||||
}
|
||||
|
||||
// KlijentRepository definiše operacije nad klijentima
|
||||
type KlijentRepository interface {
|
||||
Lista(ctx context.Context, pretraga string) ([]model.Klijent, error)
|
||||
ListaFilter(ctx context.Context, filter KlijentFilter) ([]model.Klijent, error)
|
||||
PrebrojiPoFilteru(ctx context.Context, filter KlijentFilter) (int, error)
|
||||
DohvatiID(ctx context.Context, id int64) (*model.Klijent, error)
|
||||
Kreiraj(ctx context.Context, k *model.Klijent) (int64, error)
|
||||
Izmeni(ctx context.Context, k *model.Klijent) error
|
||||
|
||||
Reference in New Issue
Block a user