Commit Graph

12 Commits

Author SHA1 Message Date
Dasko a3c68632be Izveštaji: prometni list magacina i stanje zaliha
- Prometni list: sve promene magacina po periodu (filter od/do datuma),
  bojama označeni tipovi promena (ulaz/prodaja/servis/povraćaj/korekcija)
- Stanje zaliha: svi artikli sa stanjem, min. količinom, cenama i
  ukupnom vrednošću zalihe; kritične zalihe istaknute crvenom bojom
- Brzi linkovi na oba izveštaja sa glavne stranice izveštaja
2026-06-19 19:53:06 +02:00
Dasko f29e76612e Servis forma, animacije, hover efekti i pojačane senke
Servis:
- Nova polja: ostecenja, pin_uredjaja, pribor (migracija 051)
- Default garancija iz podešavanja, svič "Bez garancije" u formi
- Podešavanja → Servis: konfigurabilan rok garancije (migracija 052)
- Default datum prijema = danas; datum_prijema se eksplicitno upisuje
- Sidebar link za Servis podešavanja

PDV/Nivelacije:
- Default raspon datuma = početak/kraj tekućeg meseca (KIR, KPR, Nivelacije)
- Dodata class="tabela" na tabele bez klase (KIR, KPR, Obračun, Nivelacije)

Animacije (Moj profil → Tema):
- Korisnik bira vrstu animacije: bez, fadeInUp, fadeIn, scaleIn, slideLeft
- Čuva se po korisniku u korisnici.lokalna_animacija (migracija 053)
- CSS [data-animacija] radi na body (globalno) i na preview wrapperima (izolovano)
- Preview animacije izolovan: data-animacija na #anim-preview-wrap, ne na body
- Mobilne kartice se animiraju kad korisnik odabere stil (podrazumevano ne)
- Animacija primenjena direktno na .tabela tbody tr (bez potrebe za .animiraj)

Hover efekti (Moj profil → Tema):
- Opcije: podrazumevano, bez, podizanje, svetlost, zoom, boja
- Čuva se po korisniku u korisnici.lokalni_hover (migracija 054)
- CSS [data-hover] radi izolovano; preview menja samo #hover-preview-wrap
- Pojačane senke u oba teme (--senka i nova --senka-hover promenljiva)
- Transition dodat za transform i background na karticama

Grafikon (Izveštaji): toggle zamenjen globalnim .toggl/.toggl-klizac svičom
2026-06-18 02:21:06 +02:00
Dasko 261dc52b32 refactor(css): layout utili .kolona i .red-izmedju
Nove utility klase: .kolona (display:flex;flex-direction:column) i .red-izmedju
(display:flex;justify-content:space-between) — struktura bez razmaka. Izdvojena
strukturna flex deklaracija iz 50 elemenata (32 kolona + 18 red-izmedju); gap/
margin ostaju kao kontekstualni override po instanci.

Visoko varirani page-header redovi (sa border-bottom/flex-wrap) ostavljeni —
jednokratni. Bez promene izgleda; šabloni parsiraju.
2026-06-13 00:57:07 +02:00
Dasko 03e5e39dbb refactor(css): sporedni tekst na .pomocni-tekst klasu
39 inline elemenata (span/div) sa font-size:13px;color:var(--tekst-sporedni)
(identično postojećoj .pomocni-tekst) zamenjeno klasom; ukupno 40.

Razdelnici (border-bottom:0.5px na <tr>) NISU dirani: mešavina su thead redova
(redundantni — .tabela ih daje) i tbody data redova (gde je ivica separator i
POTREBNA), pa blanket-promena nije bezbedna. Naglašeni naslovi (font-weight:500;
color:glavni) imaju raznolik font-size (14/15/16/22px) — ne mapiraju se na jednu
klasu, ostavljeni.
2026-06-13 00:50:10 +02:00
Dasko d1d75fa8ac refactor(css): inline <table> na .tabela klasu
Tabele su koristile inline width:100%;border-collapse:collapse (identično .tabela).
21 tabela sada koristi .tabela (named tabele dobile ' tabela' uz postojeću klasu).
Preostale 2 imaju samo kontekstualni font-size:13px override.

th/td/thead-tr ostavljeni inline: th/td su kontekstualni (poravnanje/širina/boja
po koloni, raznoliki), a thead tr border je redundantan-ali-bezopasan (klasa daje
isti border:0.5px var(--ivica), inline ga samo nadjačava istom vrednošću).

Bez promene izgleda; šabloni parsiraju.
2026-06-13 00:45:41 +02:00
Dasko 941399032b Ispravljen prikaz fontova na Chart.js grafikonu u Chromium browserima (Opera, Chrome, Edge)
Problem: u Operi i Chrome-u na Chart.js grafikonu (Izveštaji) stubići
   se vide, ali slova i brojevi ne. U Firefoxu sve radi ispravno.

   Uzrok 1 — CSP font-src 'self' (internal/middleware/bezbednost.go):
   Chromium primenjuje CSP font-src direktivu i na canvas.fillText(),
   blokirajući sistemske fontove jer nisu sa 'self' origina.
   Firefox ovu proveru ne radi.

   Uzrok 2 — nedostaje font family u Chart.js konfiguraciji:
   Canvas na Linuxu ne ume sam da pronađe font sa ćiriličnim slovima
   (Helvetica/Arial ih često nemaju za canvas iako ih imaju u DOM-u).

   Rešenje:
   - Uklonjena font-src direktiva iz CSP-a
   - Dodat family: 'DejaVu Sans, Ubuntu, system-ui, sans-serif' na
     legendu, x-osu i y-osu Chart.js grafikona
2026-06-09 22:15:44 +02:00
Dasko 4a01bda7d2 Lokalizovane frontend biblioteke i popravljen prikaz u Opera/Chromium
Uklonjena zavisnost od spoljnih CDN-ova koja je u Operi prouzrokovala
  nestanak stilova i elemenata kada blocker/ekstenzija blokira CDN:

  - Tailwind (cdn.tailwindcss.com) potpuno izbačen; 9 korišćenih klasa
    (grid, grid-cols-*, md:grid-cols-*, gap-*, mb-6) prebačeno u main.css
  - HTMX i Chart.js skinuti lokalno u web/static/js/ i serviraju se
    preko go:embed umesto sa jsdelivr CDN-a
  - CSP očišćen u bezbednost.go — uklonjeni svi spoljni izvori, ostaje 'self'

  Popravljen grafikon na stranici Izveštaji: dodato color-scheme:only light
  na canvas i wrapper, jer Operin "tamni režim za web" (force-dark) zatamni
  canvas i učini tekst na osama nevidljivim.
2026-06-09 02:32:24 +02:00
Dasko a99920d102 Popravka sidebara: kolaps, podmeni i HTMX navigacija 2026-06-08 19:29:17 +02:00
Dasko 16b993933c Bezbednosni audit i refaktoring: HP popravke, RBAC, flash poruke, go:embed, CSP 2026-06-07 22:41:09 +02:00
Dasko 08b9359a76 Embed implementacija, animacije, sidebar hover 2026-06-04 02:50:48 +02:00
Dasko 974d76360a Optimizacije — SQLite WAL, template keš, gzip kompresija, build skript 2026-06-03 21:18:12 +02:00
Dasko 2401f6d5ec Ispravka QR koda za 2FA — generisanje na serveru kao base64 PNG 2026-06-02 22:29:53 +02:00