From 80ed62168336854cd02d005d1ab1ae7fb8fd8fef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Damir=20Raduli=C4=87?= Date: Tue, 5 May 2026 18:11:45 +0200 Subject: [PATCH] Frontend Financije: 4 dropdown (godina, davatelj, sport, vrsta) + listeners sport2.html: - loadFinancije: dynamic dropdown options from /v2/potpore/meta - refreshFinancije: sport/vrsta/davatelj filter params - 4 dropdown change listeners --- static/sport2.html | 40 ++++++++++++++++++++++++++++++++++------ 1 file changed, 34 insertions(+), 6 deletions(-) diff --git a/static/sport2.html b/static/sport2.html index b1b58ed..89d01bd 100644 --- a/static/sport2.html +++ b/static/sport2.html @@ -2355,14 +2355,28 @@ function switchPlayerTab(el, tabId){ //=========== FINANCIJE =========== async function loadFinancije(){ const root = $('#pg-financije'); + // Učitaj meta options + let meta = {sportovi: [], vrste: [], davatelji: [], godine: []}; + try { meta = await api('/v2/potpore/meta'); } catch(e) { console.warn('meta fail', e); } + root.innerHTML = ` -
+
- + + + +
@@ -2383,15 +2397,29 @@ async function loadFinancije(){
`; $('#fi-god').addEventListener('change', refreshFinancije); + if($('#fi-davatelj')) $('#fi-davatelj').addEventListener('change', refreshFinancije); + if($('#fi-sport')) $('#fi-sport').addEventListener('change', refreshFinancije); + if($('#fi-vrsta')) $('#fi-vrsta').addEventListener('change', refreshFinancije); $('#fi-q').addEventListener('input', debounce(refreshFinancije, 200)); refreshFinancije(); } async function refreshFinancije(){ const god = $('#fi-god').value; + const dav = $('#fi-davatelj') ? $('#fi-davatelj').value : 'all'; + const sport = $('#fi-sport') ? $('#fi-sport').value : ''; + const vrsta = $('#fi-vrsta') ? $('#fi-vrsta').value : ''; const q = ($('#fi-q').value || '').toLowerCase().trim(); + + // Map davatelj 'rijeka.hr' → 'rijeka', 'www2.pgz.hr' → 'pgz' + let davParam = ''; + if(dav.includes('rijeka')) davParam = '&davatelj=rijeka'; + else if(dav.includes('pgz')) davParam = '&davatelj=pgz'; + + const params = `?godina=${god}${davParam}${sport?'&sport='+encodeURIComponent(sport):''}${vrsta?'&vrsta='+encodeURIComponent(vrsta):''}`; + const [analytics, byyear] = await Promise.all([ api('/v2/analytics/proracun-sport?godina='+god), - api('/v2/potpore/by-year?godina='+god) + api('/v2/potpore/by-year'+params) ]); const total = (analytics && analytics.total) || (byyear && byyear.total) || 0; const poSportu = (analytics && analytics.po_sportu) || [];