diff --git a/dashboard.html b/dashboard.html index 2d862fc..7f8441d 100644 --- a/dashboard.html +++ b/dashboard.html @@ -4,7 +4,41 @@

{{ title }}

+ {# ── Filter bar ─────────────────────────────────────────── #} +
+
+ + +
+
+ + +
+
+ + Clear +
+
+ + {% if results | length > 0 %} +
@@ -31,6 +65,30 @@ {% endfor %}
+
+ + {# ── Pagination ─────────────────────────────────────────── #} + {# Build filter params string only for values that are set #} + {% set filter_qs %}{% if recon_job_name %}&recon_job_name={{ recon_job_name }}{% endif %}{% if as_at_date %}&as_at_date={{ as_at_date }}{% endif %}{% endset %} + {% endif %}
{% endblock %} \ No newline at end of file diff --git a/styles.css b/styles.css index fc31649..148c5ca 100644 --- a/styles.css +++ b/styles.css @@ -108,12 +108,14 @@ footer { } /* ── Data table ─────────────────────────────────────────── */ +.table-scroll { + overflow-x: auto; + border-radius: 10px; +} .data-table { width: 100%; border-collapse: collapse; font-size: 14px; - border-radius: 10px; - overflow: hidden; box-shadow: 0 4px 24px rgba(0, 0, 0, 0.4); } .data-table thead { @@ -165,3 +167,94 @@ footer { .badge-pending { background: rgba(234,179,8,0.15); color: #facc15; } .badge-none { background: rgba(100,116,139,0.15); color: #94a3b8; } .badge-flag { background: rgba(249,115,22,0.15); color: #fb923c; } + +/* ── Filter bar ─────────────────────────────────────────── */ +.filter-bar { + display: flex; + flex-wrap: wrap; + align-items: flex-end; + gap: 16px; + margin-bottom: 24px; + padding: 18px 20px; + background: rgba(255, 255, 255, 0.04); + border: 1px solid #2d2d3a; + border-radius: 10px; +} +.filter-group { + display: flex; + flex-direction: column; + gap: 6px; +} +.filter-group label { + font-size: 11px; + font-weight: 600; + text-transform: uppercase; + letter-spacing: 0.07em; + color: #94a3b8; +} +.filter-group input { + background: #0f1117; + border: 1px solid #2d2d3a; + border-radius: 6px; + color: #e2e8f0; + font-size: 14px; + padding: 8px 12px; + min-width: 200px; + transition: border-color 0.15s ease; +} +.filter-group input:focus { + outline: none; + border-color: #6366f1; +} +.filter-group input[type="date"]::-webkit-calendar-picker-indicator { + filter: invert(0.6); + cursor: pointer; +} +.filter-actions { + display: flex; + gap: 8px; + align-items: flex-end; +} + +/* ── Buttons ────────────────────────────────────────────── */ +.btn { + display: inline-block; + padding: 8px 18px; + border-radius: 6px; + font-size: 13px; + font-weight: 600; + letter-spacing: 0.03em; + cursor: pointer; + text-decoration: none; + border: none; + transition: opacity 0.15s ease, background 0.15s ease; + white-space: nowrap; +} +.btn-primary { + background: #6366f1; + color: #fff; +} +.btn-primary:hover { + background: #4f46e5; +} +.btn-secondary { + background: rgba(255, 255, 255, 0.07); + color: #cbd5e1; + border: 1px solid #2d2d3a; +} +.btn-secondary:hover:not(.btn-disabled) { + background: rgba(255, 255, 255, 0.13); +} +.btn-disabled { + opacity: 0.35; + cursor: default; + pointer-events: none; +} + +/* ── Pagination ─────────────────────────────────────────── */ +.pagination { + display: flex; + gap: 10px; + justify-content: flex-end; + margin-top: 20px; +}