PDF link target=_blank + nginx timeouts + priority filteri (samo s podacima)
nginx (sport.rinet.one): - proxy_read_timeout 60s → 300s - proxy_send_timeout 300s - proxy_buffering off (PDF stream) - client_max_body_size 50M → 100M Endpoints: - /api/v2/klubovi/financirani: +with_data filter (samo s potporama/godišnjakom/HNS) - /api/v2/sportasi/filtered: +samo_priority +samo_s_hns Frontend: - PDF link target=_blank rel=noopener - window._klub_only_priority = true (default) - window._sportas_only_priority = true (default) DB View: - pgz_sport.v_nogomet_priority (prima_potpore, u_godisnjaku, ima_hns_roster)
This commit is contained in:
@@ -103,6 +103,21 @@ table tr.sel td { background:rgba(26,115,232,.15); }
|
||||
.chip.high { background:#3a2e1a; color:#fbbf24; }
|
||||
.chip.normal { background:#1e293b; color:#94a3b8; }
|
||||
.chip.low { background:#1f1f1f; color:#71717a; }
|
||||
.chip.nepodmireno { background:#3a1e1e; color:#f87171; }
|
||||
.chip.djelomicno { background:#3a2e1a; color:#fbbf24; }
|
||||
.chip.podmireno { background:#1a3a2a; color:#4ade80; }
|
||||
.chip.storno { background:#1f1f1f; color:#71717a; }
|
||||
.chip.draft { background:#1e293b; color:#94a3b8; }
|
||||
.chip.submitted { background:#1e3a5f; color:#60a5fa; }
|
||||
.chip.approved { background:#1a3a2a; color:#4ade80; }
|
||||
.chip.rejected { background:#3a1e1e; color:#f87171; }
|
||||
.chip.spreman { background:#1a3a2a; color:#4ade80; }
|
||||
.chip.nije-spreman{ background:#3a1e1e; color:#f87171; }
|
||||
.tpl-row { padding:9px 12px; border-bottom:1px solid var(--rim); cursor:pointer; }
|
||||
.tpl-row:hover { background:var(--bg3); }
|
||||
.tpl-row.sel { background:rgba(26,115,232,.18); border-left:3px solid var(--pgz-blue); padding-left:9px; }
|
||||
.tpl-row .tpl-n { font-weight:600; font-size:12px; color:var(--t1); }
|
||||
.tpl-row .tpl-c { font-size:10px; color:var(--t3); margin-top:2px; text-transform:uppercase; letter-spacing:.4px; }
|
||||
|
||||
/* Kanban */
|
||||
.kanban { display:grid; grid-template-columns:repeat(6,1fr); gap:10px; min-height:60vh; }
|
||||
@@ -190,6 +205,9 @@ footer { height:36px; background:var(--bg2); border-top:1px solid var(--rim);
|
||||
<div class="tab" data-tab="opportunities">Opportunities <span class="count" id="cnt-opps">·</span></div>
|
||||
<div class="tab" data-tab="activities">Activities <span class="count" id="cnt-activities">·</span></div>
|
||||
<div class="tab" data-tab="cases">Cases <span class="count" id="cnt-cases">·</span></div>
|
||||
<div class="tab" data-tab="clanarine">Članarine <span class="count" id="cnt-clanarine">·</span></div>
|
||||
<div class="tab" data-tab="lijecnicki">Liječnički <span class="count" id="cnt-lijecnicki">·</span></div>
|
||||
<div class="tab" data-tab="obrasci">Obrasci <span class="count" id="cnt-obrasci">·</span></div>
|
||||
</div>
|
||||
|
||||
<div class="main">
|
||||
@@ -364,6 +382,89 @@ footer { height:36px; background:var(--bg2); border-top:1px solid var(--rim);
|
||||
</div></div>
|
||||
</div>
|
||||
|
||||
<!-- ────── ČLANARINE ────── -->
|
||||
<div class="tab-c" id="tc-clanarine">
|
||||
<div class="toolbar">
|
||||
<input id="cln-klub" type="number" placeholder="Klub ID" style="max-width:120px">
|
||||
<input id="cln-clan" type="number" placeholder="Član ID" style="max-width:120px">
|
||||
<input id="cln-godina" type="number" placeholder="Godina" style="max-width:120px">
|
||||
<select id="cln-status">
|
||||
<option value="">— Svi statusi —</option>
|
||||
<option value="nepodmireno">nepodmireno</option>
|
||||
<option value="djelomicno">djelomično</option>
|
||||
<option value="podmireno">podmireno</option>
|
||||
<option value="storno">storno</option>
|
||||
</select>
|
||||
<button class="btn" onclick="loadClanarine()">Filtriraj</button>
|
||||
<span class="grow"></span>
|
||||
<button class="btn primary" onclick="openClanarinaModal()">+ Nova članarina</button>
|
||||
</div>
|
||||
<div class="card"><div class="card-b" style="padding:0">
|
||||
<table id="t-clanarine"><thead><tr>
|
||||
<th>Član</th><th>Klub</th><th>Godina</th><th>Razdoblje</th>
|
||||
<th>Propisan</th><th>Plaćen</th><th>Datum uplate</th><th>Status</th><th></th>
|
||||
</tr></thead><tbody></tbody></table>
|
||||
</div></div>
|
||||
</div>
|
||||
|
||||
<!-- ────── LIJEČNIČKI ────── -->
|
||||
<div class="tab-c" id="tc-lijecnicki">
|
||||
<div class="toolbar">
|
||||
<input id="lij-klub" type="number" placeholder="Klub ID" style="max-width:120px">
|
||||
<input id="lij-clan" type="number" placeholder="Član ID" style="max-width:120px">
|
||||
<select id="lij-expiring">
|
||||
<option value="">— Svi —</option>
|
||||
<option value="true">Ističu (≤30d) ili istekli</option>
|
||||
</select>
|
||||
<button class="btn" onclick="loadLijecnicki()">Filtriraj</button>
|
||||
<span class="grow"></span>
|
||||
<button class="btn primary" onclick="openLijecnickiModal()">+ Novi pregled</button>
|
||||
</div>
|
||||
<div class="card"><div class="card-b" style="padding:0">
|
||||
<table id="t-lijecnicki"><thead><tr>
|
||||
<th>Član</th><th>Klub</th><th>Datum</th><th>Vrsta</th>
|
||||
<th>Vrijedi do</th><th>Liječnik</th><th>Spreman</th><th>Plaćeno</th><th></th>
|
||||
</tr></thead><tbody></tbody></table>
|
||||
</div></div>
|
||||
</div>
|
||||
|
||||
<!-- ────── OBRASCI ────── -->
|
||||
<div class="tab-c" id="tc-obrasci">
|
||||
<div style="display:grid; grid-template-columns:300px 1fr; gap:12px; align-items:start;">
|
||||
<!-- Templates list (left) -->
|
||||
<div class="card">
|
||||
<div class="card-h"><div class="card-t">Predlošci</div>
|
||||
<button class="btn sm" onclick="loadObrasciTemplates()">↻</button>
|
||||
</div>
|
||||
<div class="card-b" style="padding:0; max-height:70vh; overflow:auto;" id="obr-tpl-list">
|
||||
<div class="empty">Učitavanje…</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Submissions / detail (right) -->
|
||||
<div>
|
||||
<div class="toolbar">
|
||||
<strong id="obr-right-title">Podnešeni obrasci</strong>
|
||||
<span class="grow"></span>
|
||||
<select id="obr-status">
|
||||
<option value="">— Svi statusi —</option>
|
||||
<option value="draft">draft</option>
|
||||
<option value="submitted">submitted</option>
|
||||
<option value="approved">approved</option>
|
||||
<option value="rejected">rejected</option>
|
||||
</select>
|
||||
<input id="obr-klub" type="number" placeholder="Klub ID" style="max-width:120px">
|
||||
<button class="btn" onclick="loadObrasciSubmissions()">Filtriraj</button>
|
||||
</div>
|
||||
<div class="card"><div class="card-b" style="padding:0" id="obr-right-body">
|
||||
<table id="t-obr-sub"><thead><tr>
|
||||
<th>ID</th><th>Predložak</th><th>Klub</th><th>Član</th>
|
||||
<th>Status</th><th>Submitted</th><th>Approved</th><th></th>
|
||||
</tr></thead><tbody></tbody></table>
|
||||
</div></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div><!-- /main -->
|
||||
|
||||
<footer>
|
||||
@@ -439,6 +540,9 @@ function switchTab(name) {
|
||||
if (name==='opportunities') loadOpps();
|
||||
if (name==='activities') loadActivities();
|
||||
if (name==='cases') loadCases();
|
||||
if (name==='clanarine') loadClanarine();
|
||||
if (name==='lijecnicki') loadLijecnicki();
|
||||
if (name==='obrasci') { loadObrasciTemplates(); loadObrasciSubmissions(); }
|
||||
}
|
||||
|
||||
// ────── /me ──────
|
||||
|
||||
Reference in New Issue
Block a user