From 997ca4060c8c9674bbd15384cb30877a7eb7a02e Mon Sep 17 00:00:00 2001 From: CaptainJack2491 Date: Thu, 2 Apr 2026 17:37:11 +0100 Subject: feat(dashboard): enhance raw-dataset view with column toggles, truncation, and row inspector --- api/static/css/results.css | 150 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 147 insertions(+), 3 deletions(-) (limited to 'api/static/css/results.css') diff --git a/api/static/css/results.css b/api/static/css/results.css index 9a532b8..d9cdddd 100644 --- a/api/static/css/results.css +++ b/api/static/css/results.css @@ -36,6 +36,9 @@ } .data-table th { + position: sticky; + top: 0; + z-index: 10; text-align: left; padding: 12px 16px; background-color: var(--color-bg-2); @@ -46,16 +49,29 @@ letter-spacing: 0.05em; border-bottom: var(--border-width) solid var(--color-bg-3); white-space: nowrap; + box-shadow: 0 2px 2px -1px rgba(0,0,0,0.4); } .data-table td { padding: 10px 16px; border-bottom: var(--border-width) solid var(--color-bg-3); color: var(--color-text-primary); + max-width: 300px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + vertical-align: middle; +} + +.data-table td.cell-long { max-width: 400px; - white-space: normal; - word-wrap: break-word; - vertical-align: top; +} + +.data-table td.cell-action { + width: 60px; + padding: 8px; + text-align: center; + overflow: visible; } .data-table tr:last-child td { @@ -64,6 +80,25 @@ .data-table tr:hover td { background-color: var(--color-bg-2); + cursor: pointer; +} + +/* Row Action Button */ +.btn-row-action { + background: var(--color-bg-3); + border: 1px solid transparent; + color: var(--color-text-primary); + padding: 4px 8px; + border-radius: var(--border-radius); + font-size: 0.7rem; + font-weight: 600; + cursor: pointer; + transition: var(--transition-fast); +} + +.btn-row-action:hover { + background: var(--color-accent); + color: white; } /* Image Grid */ @@ -111,3 +146,112 @@ position: relative; height: 300px; } + +/* Column Selector */ +.column-selector { + position: relative; + display: inline-block; + margin-left: var(--space-md); +} + +.column-dropdown { + position: absolute; + top: calc(100% + 8px); + right: 0; + background: var(--color-bg-1); + border: 1px solid var(--color-bg-3); + border-radius: var(--border-radius); + padding: var(--space-md); + z-index: 100; + min-width: 280px; + box-shadow: 0 15px 35px rgba(0, 0, 0, 0.6); + max-height: 500px; + overflow-y: auto; + transition: opacity var(--transition-fast), transform var(--transition-fast); +} + +.column-grid { + display: flex; + flex-direction: column; + gap: 2px; +} + +.column-grid .checkbox-item { + padding: 6px 8px; + border-radius: var(--border-radius); +} + +.column-grid .checkbox-item:hover { + background-color: var(--color-bg-2); +} + +.column-grid .checkbox-item span { + font-size: 0.75rem; + color: var(--color-text-secondary); +} + +/* Modal Enhancements for Inspector */ +.modal-content.wide { + width: 95%; + max-width: 1200px; + height: 90vh; + display: flex; + flex-direction: column; +} + +.inspector-layout { + display: grid; + grid-template-columns: 350px 1fr; + gap: var(--space-lg); + height: 100%; + overflow: hidden; +} + +.inspector-sidebar { + border-right: 1px solid var(--color-bg-3); + padding-right: var(--space-md); + overflow-y: auto; +} + +.inspector-main { + overflow: hidden; + display: flex; + flex-direction: column; +} + +.field-entry { + margin-bottom: var(--space-md); +} + +.field-label { + font-size: 0.65rem; + font-weight: 800; + text-transform: uppercase; + color: var(--color-text-secondary); + margin-bottom: 2px; +} + +.field-value { + font-size: 0.85rem; + word-break: break-all; +} + +.json-viewer-header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: var(--space-sm); +} + +.json-viewer-container { + flex-grow: 1; + background: var(--color-bg-0); + border: 1px solid var(--color-bg-3); + border-radius: var(--border-radius); + padding: var(--space-md); + font-family: 'JetBrains Mono', monospace; + font-size: 0.8rem; + overflow-y: auto; + color: var(--color-text-primary); + white-space: pre-wrap; +} -- cgit v1.2.3