Project homepage Mailing List  Warmcat.com  API Docs  Github Mirror 
    npro  
 Modern all-safe Rust Network Protocol library supporting h1, h2, h3, ws, wt sans-IO and with socket IO + tls
git clone https://npro.rs/repo/npro
 
root / cmake / GetGitHash.cmake
Author[]Andy Green <andy@warmcat.com> 2026-08-02 17:56 UTC
Committer[]Andy Green <andy@warmcat.com> 2026-08-02 17:56 UTC
Tree24659caa15950071522c03cb0d7d130625161a1b   Raw Patch
 
ui5
ui5
diff --git a/assets/sai.css b/assets/sai.css index f52d24d..d27ac78 100644 --- a/assets/sai.css +++ b/assets/sai.css @@ -1789,6 +1789,9 @@ div.ibuil.vm-builder { .sidebar-pane .sb-col { box-sizing: border-box; min-width: 0; + min-height: 0; /* allow flex children to actually scroll */ + max-height: 100%; + height: 100%; border-right: 1px solid rgba(0, 0, 0, 0.10); padding: 4px 6px; overflow-y: auto; @@ -1842,12 +1845,11 @@ div.ibuil.vm-builder { flex: 0 0 130px; } -/* col 4: events (most-recent-first), takes the remaining space */ +/* col 4: events (most-recent-first), takes the remaining space. + * Not a flex container: the rows are block-level and the column itself is + * the scroll region (overflow-y:auto comes from .sb-col). */ .sidebar-pane .sb-col-events { flex: 1 1 50%; - display: flex; - flex-direction: column; - gap: 2px; } /* selectable row in col 2 / col 3 */ @@ -1878,8 +1880,10 @@ div.ibuil.vm-builder { /* event rows in col 4 */ .sb-event-row { display: flex; - flex-direction: column; - padding: 3px 8px; + flex-direction: row; + align-items: center; + gap: 6px; + padding: 2px 6px; margin: 1px 0; border-radius: 4px; cursor: pointer; @@ -1889,6 +1893,8 @@ div.ibuil.vm-builder { border: 1px solid #cbd5e1; font-size: 9pt; color: #1e293b; + white-space: nowrap; + overflow: hidden; } .sb-event-row:hover { @@ -1910,18 +1916,12 @@ div.ibuil.vm-builder { border: 2px solid #000000; } -.sb-event-row .sb-event-top { - display: flex; - align-items: baseline; - gap: 8px; - flex-wrap: wrap; -} - .sb-event-row .sb-event-when { font-family: 'OpenSans', sans-serif; font-size: 8pt; color: #64748b; white-space: nowrap; + flex: 0 0 auto; } .sb-event-row.comp_fail .sb-event-when { @@ -1932,19 +1932,29 @@ div.ibuil.vm-builder { font-family: monospace; font-size: 9pt; white-space: nowrap; + flex: 0 0 auto; } .sb-event-row .sb-event-status { font-size: 8.5pt; white-space: nowrap; + flex: 0 0 auto; } +/* progress bar slot: sits inline on the same row, takes the remaining width */ .sb-event-row .sb-event-bar { - margin-top: 2px; + flex: 1 1 auto; + min-width: 24px; + display: inline-flex; + align-items: center; +} +.sb-event-row .sb-event-bar:empty { + display: none; } .sb-event-row .progress-bar { width: 100%; + height: 8px; } .sb-empty { diff --git a/assets/sai.js b/assets/sai.js index 2c6567d..e29dca6 100644 --- a/assets/sai.js +++ b/assets/sai.js @@ -1651,15 +1651,14 @@ function render_sb_events() var sel = (e.uuid === selected_event_uuid) ? " selected" : ""; s += "<div class=\"sb-event-row" + stateClass + sel + "\" data-uuid=\"" + san(e.uuid) + "\">"; - s += "<div class=\"sb-event-top\">"; + /* single line: when + tag + status + progress bar */ s += "<span class=\"sb-event-when\">" + san(sai_sb_fmt_when(e.created)) + " <span class='age-0' ut='" + e.created + "'>" + agify(now_ut, e.created) + "</span></span>"; s += "<span class=\"sb-event-tag\">" + san(sai_event_hash_display(e.hash)) + "</span>"; s += "<span class=\"sb-event-status\" id=\"sbsum-" + san(e.uuid) + "\"></span>"; - s += "</div>"; - /* progress bar slot, filled by sai_sb_render_event_summary() */ - s += "<div class=\"sb-event-bar\" id=\"sbbar-" + san(e.uuid) + "\"></div>"; + /* progress bar slot (inline, takes remaining width), filled by sai_sb_render_event_summary() */ + s += "<span class=\"sb-event-bar\" id=\"sbbar-" + san(e.uuid) + "\"></span>"; s += "</div>"; }); }
Page fetched 0s ago, creation time: 5ms (vhost etag hits: 0%, cache hits: 0%)