Throttle updater toasts and bump cache-bust
This commit is contained in:
@@ -5,7 +5,7 @@ import { placeholderStatus, renderStats } from "./status.js";
|
||||
import { initServiceControls, renderServices } from "./services.js";
|
||||
import { initSettings } from "./settings.js";
|
||||
import { initUpdateSettings, isUpdatesDirty } from "./update-settings.js";
|
||||
import { initReleaseUI } from "./releases.js?v=20251213f";
|
||||
import { initReleaseUI } from "./releases.js?v=20251213g";
|
||||
|
||||
const servicesGrid = document.getElementById("servicesGrid");
|
||||
const heroStats = document.getElementById("heroStats");
|
||||
|
||||
@@ -45,6 +45,7 @@ export function initReleaseUI({ showToast, showBusy, hideBusy, confirmAction })
|
||||
let releaseLogLines = [];
|
||||
let releaseLastFetched = 0;
|
||||
let lastReleaseLogKey = "";
|
||||
let lastReleaseToastKey = null;
|
||||
let changelogCache = { version: null, text: "" };
|
||||
let lastChangelogUrl = null;
|
||||
let releaseChannel = "dev";
|
||||
@@ -159,9 +160,9 @@ export function initReleaseUI({ showToast, showBusy, hideBusy, confirmAction })
|
||||
logRelease(`Status: ${status}${progress ? " • " + progress : ""}${message ? " • " + message : ""}`);
|
||||
lastReleaseLogKey = key;
|
||||
}
|
||||
releaseLastFetched = now;
|
||||
if (status === "update_available" && message && message.startsWith("http")) {
|
||||
lastChangelogUrl = message;
|
||||
releaseLastFetched = now;
|
||||
if (status === "update_available" && message && message.startsWith("http")) {
|
||||
lastChangelogUrl = message;
|
||||
} else if (latest_version) {
|
||||
lastChangelogUrl = `https://git.44r0n.cc/44r0n7/pi-kit/releases/download/v${latest_version}/CHANGELOG-${latest_version}.txt`;
|
||||
}
|
||||
@@ -200,11 +201,20 @@ export function initReleaseUI({ showToast, showBusy, hideBusy, confirmAction })
|
||||
releaseBusyActive = false;
|
||||
hideBusy();
|
||||
if (releaseProgress) releaseProgress.textContent = "";
|
||||
if (state.status === "up_to_date") {
|
||||
showToast(state.message || "Update complete", "success");
|
||||
// Only toast once per apply/rollback cycle
|
||||
if (state.status === "up_to_date" && releaseBusyActive === false) {
|
||||
const key = `ok-${state.current_version || ""}-${state.latest_version || ""}`;
|
||||
if (lastReleaseToastKey !== key) {
|
||||
lastReleaseToastKey = key;
|
||||
showToast(state.message || "Update complete", "success");
|
||||
}
|
||||
logRelease("Update complete");
|
||||
} else if (state.status === "error") {
|
||||
showToast(state.message || "Update failed", "error");
|
||||
const key = `err-${state.message || ""}`;
|
||||
if (lastReleaseToastKey !== key) {
|
||||
lastReleaseToastKey = key;
|
||||
showToast(state.message || "Update failed", "error");
|
||||
}
|
||||
logRelease(`Error: ${state.message || "Update failed"}`);
|
||||
}
|
||||
}
|
||||
@@ -242,6 +252,7 @@ export function initReleaseUI({ showToast, showBusy, hideBusy, confirmAction })
|
||||
|
||||
releaseApplyBtn?.addEventListener("click", async () => {
|
||||
try {
|
||||
lastReleaseToastKey = null;
|
||||
const state = window.__lastReleaseState || {};
|
||||
const { current_version, latest_version } = state;
|
||||
const sameVersion =
|
||||
@@ -274,6 +285,7 @@ export function initReleaseUI({ showToast, showBusy, hideBusy, confirmAction })
|
||||
|
||||
releaseRollbackBtn?.addEventListener("click", async () => {
|
||||
try {
|
||||
lastReleaseToastKey = null;
|
||||
releaseBusyActive = true;
|
||||
showBusy("Rolling back…", "Restoring previous backup.");
|
||||
logRelease("Starting rollback…");
|
||||
|
||||
@@ -726,7 +726,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="module" src="assets/main.js?v=20251213f"></script>
|
||||
<script type="module" src="assets/main.js?v=20251213g"></script>
|
||||
<div id="toastContainer" class="toast-container"></div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user