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
Author[]Andy Green <andy@warmcat.com> 2025-09-01 08:49 UTC
Committer[]Andy Green <andy@warmcat.com> 2025-09-02 15:10 UTC
Tree937adcfa95c2efe651cfe12e8d11b32237ace930   Raw Patch
 
feat: Grey out page on websocket disconnect
feat: Grey out page on websocket disconnect

Co-developed-by: Gemini 2.5 Pro
diff --git a/assets/index.html b/assets/index.html index 264c7a1..c0b3423 100644 --- a/assets/index.html +++ b/assets/index.html @@ -7,7 +7,8 @@ <script type='text/javascript' src="lws-common.js"></script> <title>Sai</title> </head> - <body> + <body class="overlay-active"> + <div class="overlay"></div> <div class="summary nailed"> <table><tr><td class="topregion"> <div class="logo"> diff --git a/assets/sai.css b/assets/sai.css index 91f3c4c..f825a86 100644 --- a/assets/sai.css +++ b/assets/sai.css @@ -974,3 +974,17 @@ img.branch { .step-bar-completed { background-color: black; } + +.overlay { + position: fixed; + width: 100%; + height: 100%; + top: 0; + left: 0; + background-color: rgba(0, 0, 0, 0.5); + z-index: 2000; +} + +body.overlay-active { + overflow: hidden; +} diff --git a/assets/sai.js b/assets/sai.js index 0bc7372..9eec0d8 100644 --- a/assets/sai.js +++ b/assets/sai.js @@ -1122,6 +1122,12 @@ function ws_open_sai() try { sai.onopen = function() { + var overlay = document.querySelector(".overlay"); + if (overlay) { + overlay.parentNode.removeChild(overlay); + } + document.body.classList.remove("overlay-active"); + var par = new URLSearchParams(window.location.search), tid, eid; tid = par.get('task'); @@ -1755,6 +1761,11 @@ function ws_open_sai() }; sai.onclose = function(ev){ + var overlay = document.createElement("div"); + overlay.className = "overlay"; + document.body.appendChild(overlay); + document.body.classList.add("overlay-active"); + console.log("WebSocket closed. Code:", ev.code, "Reason:", ev.reason); myVar = setTimeout(ws_open_sai, 4000); };
Page fetched 0s ago, creation time: 14ms (vhost etag hits: 0%, cache hits: 0%)