diff --git a/static/index.html b/static/index.html index ac21e69..5048904 100644 --- a/static/index.html +++ b/static/index.html @@ -1623,7 +1623,7 @@ -
Use Browser USB Flash for new satellites, recovery, or devices older than Tater firmware 3.0.3. Chrome or Edge must be used on localhost or HTTPS.
+
Use Browser USB Flash for new satellites, recovery, or devices older than Tater firmware 3.0.3. Chrome or Edge must be used on localhost or HTTPS. In the macOS app, open http://127.0.0.1:8789 in Chrome or Edge; port 3232 is only for OTA updates after firmware is installed.
@@ -2789,82 +2789,7 @@ function renderFirmwareFields() { resetWakeSoundPreview(); - const template = selectedFirmwareTemplate(); - if (!template) { - $("firmwareFields").innerHTML = `
Choose a firmware family to see image details.
`; - return; - } - const prebuilt = template.prebuilt_firmware || {}; - const artifacts = prebuilt.artifacts || {}; - const ota = artifacts.ota || {}; - const factory = artifacts.factory || {}; - const statusClass = prebuilt.available ? "ok" : "warn"; - const statusText = prebuilt.available ? "OTA image available" : (prebuilt.error || "Prebuilt image unavailable"); - $("firmwareFields").innerHTML = ` -
-
-

Firmware Details

- ${escapeHtml(statusText)} -
-
- - - - -
-
- `; - return; - - const fields = Array.isArray(template?.fields) ? template.fields : []; - if (!fields.length) { - $("firmwareFields").innerHTML = `
No editable settings were found for this firmware template. You can continue with the selected template and target device.
`; - return; - } - - const groups = new Map(); - fields.forEach((field) => { - const section = String(field.section || "Firmware"); - if (!groups.has(section)) groups.set(section, []); - groups.get(section).push(field); - }); - - const orderedGroups = Array.from(groups.entries()); - const wakeSoundIndex = orderedGroups.findIndex(([section]) => section === "Wake Sound"); - const microWakeWordIndex = orderedGroups.findIndex(([section]) => section === "Micro Wake Word"); - if (wakeSoundIndex >= 0 && microWakeWordIndex >= 0 && wakeSoundIndex !== microWakeWordIndex + 1) { - const [wakeSoundGroup] = orderedGroups.splice(wakeSoundIndex, 1); - const targetIndex = orderedGroups.findIndex(([section]) => section === "Micro Wake Word"); - orderedGroups.splice(targetIndex + 1, 0, wakeSoundGroup); - } - - $("firmwareFields").innerHTML = orderedGroups.map(([section, rows]) => ` -
-
-

${escapeHtml(section)}

-
-
- ${rows.map((field) => renderFirmwareField(field)).join("")} - ${section === "Wake Sound" ? renderWakeSoundPreviewControl() : ""} -
-
- `).join(""); - syncRenderedWakeWordSelection(); - syncRenderedWakeSoundSelection(); + $("firmwareFields").innerHTML = ""; } function renderFirmwareField(field) {