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 / src / builder / b-win32-service.c
Author[]Andy Green <andy@warmcat.com> 2026-08-02 18:03 UTC
Committer[]Andy Green <andy@warmcat.com> 2026-08-02 18:03 UTC
Tree332fe309d9ce34075dfa4fc2a5ab5fe9cbf46f2f   Raw Patch
 
ui6
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 @@ <html lang="en"> <head> <meta charset=utf-8 http-equiv="Content-Language" content="en"/> - <link rel="stylesheet" type="text/css" href="sai.css"/> + <link rel="stylesheet" type="text/css" href="sai.css?v=4"/> <link rel="icon" href="sai-icon.svg" sizes="any" type="image/svg+xml"/> - <script type='text/javascript' src='sai.js'></script> + <script type='text/javascript' src='sai.js?v=4'></script> <script type='text/javascript' src='terminal-core.js'></script> <script type='text/javascript' src='sai-terminal.js'></script> <script type='text/javascript' src='lws-login.js'></script> 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 += "<div class=\"event-tasks-header\">"; + var refName = e.ref.replace("refs/heads/", "").replace("refs/tags/", ""); + s += "<span class=\"event-tasks-title\">" + san(e.repo_name) + " (" + san(refName) + ") - " + san(sai_event_hash_display(e.hash)) + "</span>"; + /* admin-only restart-all / delete-event controls live here now */ + if (!gitohashi_integ && auth_state === SaiAuthState.LOGGED_IN_GRANT_ADMIN) { + s += "<img class=\"rebuild\" alt=\"rebuild all\" src=\"/sai/rebuild.png\" " + + "id=\"rebuild-ev-" + san(e.uuid) + "\">"; + s += "<img class=\"rebuild\" alt=\"delete event\" src=\"/sai/delete.png\" " + + "id=\"delete-ev-" + san(e.uuid) + "\">"; + } + s += "</div>"; + if (o.t && o.t.length) { - s += "<div class=\"event-tasks-header\">"; - var refName = e.ref.replace("refs/heads/", "").replace("refs/tags/", ""); - s += "<span class=\"event-tasks-title\">" + san(e.repo_name) + " (" + san(refName) + ") - " + san(sai_event_hash_display(e.hash)) + "</span>"; - /* admin-only restart-all / delete-event controls live here now */ - if (!gitohashi_integ && auth_state === SaiAuthState.LOGGED_IN_GRANT_ADMIN) { - s += "<img class=\"rebuild\" alt=\"rebuild all\" src=\"/sai/rebuild.png\" " + - "id=\"rebuild-ev-" + san(e.uuid) + "\">"; - s += "<img class=\"rebuild\" alt=\"delete event\" src=\"/sai/delete.png\" " + - "id=\"delete-ev-" + san(e.uuid) + "\">"; - } - s += "</div>"; s += "<table class=\"tasks-table-display\"><tr><td class=\"tasks\" id=\"taskcont-" + san(e.uuid) + "\">"; 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
Page fetched 0s ago, creation time: 6ms (vhost etag hits: 0%, cache hits: 0%)