Show diagnostics log modal via header button; toggle visibility when enabled
This commit is contained in:
@@ -48,8 +48,19 @@ export function logUi(msg, level = "info", meta) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export async function initDiagUI({ elements, toast }) {
|
export async function initDiagUI({ elements, toast }) {
|
||||||
const { enableToggle, debugToggle, refreshBtn, clearBtn, copyBtn, downloadBtn, logBox, statusEl } =
|
const {
|
||||||
elements;
|
enableToggle,
|
||||||
|
debugToggle,
|
||||||
|
refreshBtn,
|
||||||
|
clearBtn,
|
||||||
|
copyBtn,
|
||||||
|
downloadBtn,
|
||||||
|
logBox,
|
||||||
|
statusEl,
|
||||||
|
logButton,
|
||||||
|
modal,
|
||||||
|
modalClose,
|
||||||
|
} = elements;
|
||||||
|
|
||||||
const setBusy = (on) => {
|
const setBusy = (on) => {
|
||||||
loading = on;
|
loading = on;
|
||||||
@@ -65,6 +76,8 @@ export async function initDiagUI({ elements, toast }) {
|
|||||||
uiLevel = state.level || "normal";
|
uiLevel = state.level || "normal";
|
||||||
if (enableToggle) enableToggle.checked = uiEnabled;
|
if (enableToggle) enableToggle.checked = uiEnabled;
|
||||||
if (debugToggle) debugToggle.checked = uiLevel === "debug";
|
if (debugToggle) debugToggle.checked = uiLevel === "debug";
|
||||||
|
if (logButton) logButton.classList.toggle("hidden", !uiEnabled);
|
||||||
|
if (modal && !uiEnabled) modal.classList.add("hidden");
|
||||||
return data.entries || [];
|
return data.entries || [];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -189,6 +202,15 @@ export async function initDiagUI({ elements, toast }) {
|
|||||||
attachClickTracker();
|
attachClickTracker();
|
||||||
await refresh();
|
await refresh();
|
||||||
|
|
||||||
|
logButton?.addEventListener("click", () => {
|
||||||
|
if (!uiEnabled) return;
|
||||||
|
modal?.classList.remove("hidden");
|
||||||
|
});
|
||||||
|
modalClose?.addEventListener("click", () => modal?.classList.add("hidden"));
|
||||||
|
modal?.addEventListener("click", (e) => {
|
||||||
|
if (e.target === modal) e.stopPropagation(); // prevent accidental close
|
||||||
|
});
|
||||||
|
|
||||||
return {
|
return {
|
||||||
logUi,
|
logUi,
|
||||||
refresh,
|
refresh,
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import { initServiceControls, renderServices } from "./services.js";
|
|||||||
import { initSettings } from "./settings.js";
|
import { initSettings } from "./settings.js";
|
||||||
import { initUpdateSettings, isUpdatesDirty } from "./update-settings.js";
|
import { initUpdateSettings, isUpdatesDirty } from "./update-settings.js";
|
||||||
import { initReleaseUI } from "./releases.js?v=20251213h";
|
import { initReleaseUI } from "./releases.js?v=20251213h";
|
||||||
import { initDiagUI, logUi } from "./diaglog.js?v=20251213h";
|
import { initDiagUI, logUi } from "./diaglog.js?v=20251213i";
|
||||||
|
|
||||||
const servicesGrid = document.getElementById("servicesGrid");
|
const servicesGrid = document.getElementById("servicesGrid");
|
||||||
const heroStats = document.getElementById("heroStats");
|
const heroStats = document.getElementById("heroStats");
|
||||||
@@ -106,6 +106,10 @@ const diagCopyBtn = document.getElementById("diagCopyBtn");
|
|||||||
const diagDownloadBtn = document.getElementById("diagDownloadBtn");
|
const diagDownloadBtn = document.getElementById("diagDownloadBtn");
|
||||||
const diagLogBox = document.getElementById("diagLogBox");
|
const diagLogBox = document.getElementById("diagLogBox");
|
||||||
const diagStatus = document.getElementById("diagStatus");
|
const diagStatus = document.getElementById("diagStatus");
|
||||||
|
const diagLogBtn = document.getElementById("diagLogBtn");
|
||||||
|
const diagModal = document.getElementById("diagModal");
|
||||||
|
const diagClose = document.getElementById("diagClose");
|
||||||
|
const diagStatusModal = document.getElementById("diagStatusModal");
|
||||||
|
|
||||||
const TOAST_POS_KEY = "pikit-toast-pos";
|
const TOAST_POS_KEY = "pikit-toast-pos";
|
||||||
const TOAST_ANIM_KEY = "pikit-toast-anim";
|
const TOAST_ANIM_KEY = "pikit-toast-anim";
|
||||||
@@ -578,7 +582,10 @@ function main() {
|
|||||||
copyBtn: diagCopyBtn,
|
copyBtn: diagCopyBtn,
|
||||||
downloadBtn: diagDownloadBtn,
|
downloadBtn: diagDownloadBtn,
|
||||||
logBox: diagLogBox,
|
logBox: diagLogBox,
|
||||||
statusEl: diagStatus,
|
statusEl: diagStatusModal || diagStatus,
|
||||||
|
logButton: diagLogBtn,
|
||||||
|
modal: diagModal,
|
||||||
|
modalClose: diagClose,
|
||||||
},
|
},
|
||||||
toast: showToast,
|
toast: showToast,
|
||||||
}).catch((e) => {
|
}).catch((e) => {
|
||||||
|
|||||||
@@ -777,7 +777,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script type="module" src="assets/main.js?v=20251213h"></script>
|
<script type="module" src="assets/main.js?v=20251213i"></script>
|
||||||
<div id="toastContainer" class="toast-container"></div>
|
<div id="toastContainer" class="toast-container"></div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
Reference in New Issue
Block a user