diff --git a/static/sport2.html b/static/sport2.html index 824e137..fc6ac9e 100644 --- a/static/sport2.html +++ b/static/sport2.html @@ -143,6 +143,12 @@ table tbody tr.no-click:hover{background:transparent} @keyframes spin{to{transform:rotate(360deg)}} .tag{display:inline-block;padding:2px 7px;font-size:10px;border-radius:3px;background:var(--bg4);color:var(--t1);font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin-right:3px} +a.tag,.tag[onclick]{cursor:pointer;text-decoration:none;transition:transform .12s,filter .12s} +a.tag:hover,.tag[onclick]:hover{transform:translateY(-1px);filter:brightness(1.15)} +.link-chip{color:var(--cyan);cursor:pointer;text-decoration:none;border-bottom:1px dashed transparent;transition:all .15s} +.link-chip:hover{color:var(--pgz-gold);border-bottom-color:var(--pgz-gold)} +.kv .v a{color:var(--cyan)} +.kv .v a:hover{color:var(--pgz-gold)} .tag.b{background:var(--pgz-blue);color:#fff} .tag.gd{background:var(--pgz-gold);color:var(--bg0)} .tag.gr{background:var(--green);color:var(--bg0)} @@ -1078,6 +1084,72 @@ function renderSportasiShell(){ $('#sp-rep').addEventListener('change', applySportasiFilter); $('#sp-foto').addEventListener('change', applySportasiFilter); } +function openOIB(oib){ + const cleanOib = String(oib||'').replace(/[^0-9]/g,''); + const url = 'https://sudreg.pravosudje.hr/registar/oc/index.html#osnovniPodaci?o='+encodeURIComponent(cleanOib); + // Open external — sudreg supports OIB lookup + window.open(url, '_blank', 'noopener'); +} +function filterKluboviByCity(grad){ + closePanel(); + navTo('klubovi'); + setTimeout(() => { + const sel = $('#kl-grad'); + if(sel){ sel.value = grad; applyKluboviFilter(); } + }, 100); +} +function filterKluboviBySport(sport){ + closePanel(); + navTo('klubovi'); + setTimeout(() => { + const sel = $('#kl-sport'); + if(sel){ sel.value = sport; applyKluboviFilter(); } + }, 100); +} +function filterObjektiByCity(grad){ + closePanel(); + navTo('objekti'); + setTimeout(() => { + const sel = $('#ob-grad'); + if(sel){ sel.value = grad; applyObjektiFilter(); } + }, 100); +} +function filterSportasiBy(field, value){ + closePanel(); + navTo('sportasi'); + setTimeout(() => { + if(field === 'sport'){ + // Use search box since there's no sport dropdown + const q = $('#sp-q'); if(q){ q.value = value; } + } else if(field === 'mjesto_rodjenja' || field === 'grad'){ + const q = $('#sp-q'); if(q){ q.value = value; } + } else if(field === 'reprezentativac'){ + const cb = $('#sp-rep'); if(cb){ cb.checked = !!value; } + } else if(field === 'hoo'){ + const sel = $('#sp-hoo'); if(sel){ sel.value = String(value); } + } else if(field === 'aktivan'){ + // Add to extra-filters slot if exists; else search by status string + _state.spExtraAktivan = value ? 'true' : 'false'; + } else if(field === 'stipendiran'){ + _state.spExtraStipendiran = !!value; + } + applySportasiFilter(); + }, 100); +} +function filterSportasiByYear(year){ + closePanel(); + navTo('sportasi'); + setTimeout(() => { + _state.spYear = String(year); + applySportasiFilter(); + }, 100); +} +function clearSportasiExtras(){ + _state.spExtraAktivan = ''; + _state.spExtraStipendiran = false; + _state.spYear = ''; +} + function setSportasiView(v){ _state.viewSportasi = v; $('#sp-card').classList.toggle('active', v==='card'); @@ -1094,6 +1166,12 @@ function applySportasiFilter(){ if(rep) rows = rows.filter(c => c.reprezentativac); if(foto) rows = rows.filter(c => c.slika_url); if(hoo) rows = rows.filter(c => String(c.hoo_kategorija||c.kategorija_hoo||'')===hoo); + if(_state.spYear){ + rows = rows.filter(c => String(c.datum_rodenja||c.datum_rodjenja||'').slice(0,4) === _state.spYear); + } + if(_state.spExtraAktivan==='true') rows = rows.filter(c => c.aktivan); + if(_state.spExtraAktivan==='false') rows = rows.filter(c => !c.aktivan); + if(_state.spExtraStipendiran) rows = rows.filter(c => c.stipendiran); if(_sort.sportasi) rows = sortRows(rows, _sort.sportasi.key, _sort.sportasi.dir); $('#sp-cnt').textContent = rows.length+' sportaša'; const top = rows.slice(0, 300); @@ -1165,14 +1243,21 @@ async function openSportas(id){