From 371e78936ac5b6417c957abd01c8f53618cfb32a Mon Sep 17 00:00:00 2001 From: lietuvis10 <50807912+lietuvis10@users.noreply.github.com> Date: Mon, 8 Dec 2025 13:50:54 +0200 Subject: [PATCH] Update wdata.tpl Updated for fail-safe switch so if there is 3 connection hiccup's we skip populating croppers. --- install/templates/wdata.tpl | 57 +++++++++++++++++++++++++++++++------ 1 file changed, 49 insertions(+), 8 deletions(-) diff --git a/install/templates/wdata.tpl b/install/templates/wdata.tpl index 8d86ec67..73c0297b 100644 --- a/install/templates/wdata.tpl +++ b/install/templates/wdata.tpl @@ -18,6 +18,7 @@ ## ## ################################################################################# + 0) { + plog.textContent += "Reconnected to server.\n"; + plog.scrollTop = plog.scrollHeight; + } + }; + es.onmessage = function (e) { // Ignore non-JSON messages (pings / blanks) if (!e.data || e.data.charCodeAt(0) !== 123 /* '{' */) return; try { var d = JSON.parse(e.data); - var pct = (d.pct || 0)|0; - var done = (d.done || 0)|0; - var total = (d.total|| 0)|0; + var pct = (d.pct || 0) | 0; + var done = (d.done || 0) | 0; + var total = (d.total|| 0) | 0; // If we've already finished, ignore further events if (finished) return; + // Valid data received -> reset retry counter + retries = 0; + pbar.style.width = pct + '%'; pinfo.textContent = done + ' / ' + total + ' (' + pct + '%)'; @@ -133,6 +151,16 @@ $autoStartCroppers = isset($_GET['startCroppers']) && $_GET['startCroppers'] === if (pct >= 100) { finished = true; plog.textContent += "✅ Completed!\n"; + plog.scrollTop = plog.scrollHeight; + es.close(); + startCountdown(); + } + + // Optional: handle explicit error flag from server if you ever send it + if (d.error) { + finished = true; + plog.textContent += "❌ " + (d.msg || "Server reported an error.") + "\n"; + plog.scrollTop = plog.scrollHeight; es.close(); startCountdown(); } @@ -143,9 +171,21 @@ $autoStartCroppers = isset($_GET['startCroppers']) && $_GET['startCroppers'] === }; es.onerror = function () { - // Don’t spam after we’re done; otherwise let EventSource reconnect silently - if (!finished) { - plog.textContent += "Connection hiccup, retrying…\n"; + // Don’t spam after we’re done + if (finished) return; + + retries++; + plog.textContent += "⚠ Connection hiccup (" + retries + "/" + MAX_RETRIES + "), retrying…\n"; + plog.scrollTop = plog.scrollHeight; + + // EventSource will auto-reconnect by itself; we just decide when to give up + if (retries >= MAX_RETRIES) { + finished = true; + plog.textContent += "❌ Too many connection failures — skipping croppers build.\n"; + plog.scrollTop = plog.scrollHeight; + es.close(); + // Reuse the same countdown UI to move on + startCountdown(); } }; } @@ -156,6 +196,7 @@ $autoStartCroppers = isset($_GET['startCroppers']) && $_GET['startCroppers'] === })(); +