Author: Andy Green Date: Sun Aug 02 19:03:27 2026 +0100 ui6 diff --git a/assets/index.html b/assets/index.html index 490a194..b8c6709 100644 --- a/assets/index.html +++ b/assets/index.html @@ -2,9 +2,9 @@ - + - + diff --git a/assets/sai.css b/assets/sai.css index d27ac78..9ab8afe 100644 --- a/assets/sai.css +++ b/assets/sai.css @@ -1941,10 +1941,11 @@ div.ibuil.vm-builder { flex: 0 0 auto; } -/* progress bar slot: sits inline on the same row, takes the remaining width */ +/* progress bar slot: fixed compact width, inline on the same row */ .sb-event-row .sb-event-bar { - flex: 1 1 auto; - min-width: 24px; + flex: 0 0 250px; + width: 250px; + max-width: 250px; display: inline-flex; align-items: center; } @@ -1953,7 +1954,8 @@ div.ibuil.vm-builder { } .sb-event-row .progress-bar { - width: 100%; + width: 250px; + max-width: 250px; height: 8px; } diff --git a/assets/sai.js b/assets/sai.js index e29dca6..bf3c54b 100644 --- a/assets/sai.js +++ b/assets/sai.js @@ -1718,18 +1718,26 @@ function render_selected_event_tasks(o) { var now_ut = Math.round((new Date().getTime() / 1000)); var s = ""; var e = o.e; + + /* + * The header (title + admin restart-all / delete-event buttons) is + * always shown for the selected event, even when no task list is + * available yet (sidebar-scoped overview events arrive with t:[] and + * fetch their tasks on demand via selectEvent -> eventinfo). + */ + s += "
"; + var refName = e.ref.replace("refs/heads/", "").replace("refs/tags/", ""); + s += "" + san(e.repo_name) + " (" + san(refName) + ") - " + san(sai_event_hash_display(e.hash)) + ""; + /* admin-only restart-all / delete-event controls live here now */ + if (!gitohashi_integ && auth_state === SaiAuthState.LOGGED_IN_GRANT_ADMIN) { + s += "\"rebuild"; + s += "\"delete"; + } + s += "
"; + if (o.t && o.t.length) { - s += "
"; - var refName = e.ref.replace("refs/heads/", "").replace("refs/tags/", ""); - s += "" + san(e.repo_name) + " (" + san(refName) + ") - " + san(sai_event_hash_display(e.hash)) + ""; - /* admin-only restart-all / delete-event controls live here now */ - if (!gitohashi_integ && auth_state === SaiAuthState.LOGGED_IN_GRANT_ADMIN) { - s += "\"rebuild"; - s += "\"delete"; - } - s += "
"; s += "
"; var run_max = {}, run_list = {}; diff --git a/src/web/w-ws-browser.c b/src/web/w-ws-browser.c index c42d293..52fe289 100644 --- a/src/web/w-ws-browser.c +++ b/src/web/w-ws-browser.c @@ -1377,6 +1377,10 @@ saiw_browser_queue_overview(struct vhd *vhd, struct pss *pss) } } + lwsl_notice("%s: DBG overview filt='%s' limit=%d offset=%u total=%u\n", + __func__, filt[0] ? filt : "(none)", n, + pss->overview_offset, total_events); + pss->wants_event_updates = 1; if (lws_struct_sq3_deserialize(vhd->pdb, filt[0] ? filt : NULL, "created ", lsm_schema_sq3_map_event, @@ -1386,6 +1390,9 @@ saiw_browser_queue_overview(struct vhd *vhd, struct pss *pss) return 0; } + lwsl_notice("%s: DBG overview returned %u events\n", + __func__, (unsigned int)owner.count); + /* * we get zero or more sai_event_t laid out in pss->query_ac, * and listed in pss->query_owner