Add firstboot onboarding and prep/check tooling
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
// Entry point for the dashboard: wires UI events, pulls status, and initializes
|
||||
// feature modules (services, settings, stats).
|
||||
import { getStatus, triggerReset } from "./api.js";
|
||||
import { getStatus, getFirstbootError, getFirstbootStatus, triggerReset } from "./api.js";
|
||||
import { createFirstbootUI } from "./firstboot-ui.js";
|
||||
import { initServiceControls } from "./services.js";
|
||||
import { placeholderStatus, renderStats } from "./status.js";
|
||||
import { initSettings } from "./settings.js";
|
||||
@@ -99,6 +100,16 @@ const busyTitle = document.getElementById("busyTitle");
|
||||
const busyText = document.getElementById("busyText");
|
||||
const toastContainer = document.getElementById("toastContainer");
|
||||
const readyOverlay = document.getElementById("readyOverlay");
|
||||
const firstbootSteps = document.getElementById("firstbootSteps");
|
||||
const firstbootCurrentStep = document.getElementById("firstbootCurrentStep");
|
||||
const firstbootLog = document.getElementById("firstbootLog");
|
||||
const firstbootLogNote = document.getElementById("firstbootLogNote");
|
||||
const firstbootErrorModal = document.getElementById("firstbootErrorModal");
|
||||
const firstbootErrorLog = document.getElementById("firstbootErrorLog");
|
||||
const firstbootErrorClose = document.getElementById("firstbootErrorClose");
|
||||
const firstbootCopyError = document.getElementById("firstbootCopyError");
|
||||
const firstbootShowRecovery = document.getElementById("firstbootShowRecovery");
|
||||
const firstbootRecovery = document.getElementById("firstbootRecovery");
|
||||
const confirmModal = document.getElementById("confirmModal");
|
||||
const confirmTitle = document.getElementById("confirmTitle");
|
||||
const confirmBody = document.getElementById("confirmBody");
|
||||
@@ -146,6 +157,21 @@ const confirmAction = createConfirmModal({
|
||||
});
|
||||
const collapseAccordions = () => document.querySelectorAll(".accordion").forEach((a) => a.classList.remove("open"));
|
||||
|
||||
const firstbootUI = createFirstbootUI({
|
||||
overlay: readyOverlay,
|
||||
stepsEl: firstbootSteps,
|
||||
currentStepEl: firstbootCurrentStep,
|
||||
logEl: firstbootLog,
|
||||
logNoteEl: firstbootLogNote,
|
||||
errorModal: firstbootErrorModal,
|
||||
errorLogEl: firstbootErrorLog,
|
||||
errorCloseBtn: firstbootErrorClose,
|
||||
errorCopyBtn: firstbootCopyError,
|
||||
errorShowRecoveryBtn: firstbootShowRecovery,
|
||||
recoveryEl: firstbootRecovery,
|
||||
showToast,
|
||||
});
|
||||
|
||||
const statusController = createStatusController({
|
||||
heroStats,
|
||||
servicesGrid,
|
||||
@@ -160,6 +186,11 @@ const statusController = createStatusController({
|
||||
updatesFlagEl: setUpdatesFlag,
|
||||
releaseUIGetter: () => releaseUI,
|
||||
onReadyWait: () => setTimeout(() => statusController.loadStatus(), 3000),
|
||||
firstboot: {
|
||||
getStatus: getFirstbootStatus,
|
||||
getError: getFirstbootError,
|
||||
ui: firstbootUI,
|
||||
},
|
||||
});
|
||||
const { loadStatus } = statusController;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user