From a3661df8c2533f3b66084aca7685ca2989d3e33a Mon Sep 17 00:00:00 2001 From: nearxos Date: Thu, 19 Feb 2026 00:15:47 +0200 Subject: [PATCH] Enhance eMMC provisioning dashboard: add backups directory information to API response, update UI to include a refresh button for saved backups, and improve user instructions for setting golden images. --- chromium-setup/emmc-provisioning/dashboard/app.py | 2 +- .../dashboard/templates/index.html | 15 +++++++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/chromium-setup/emmc-provisioning/dashboard/app.py b/chromium-setup/emmc-provisioning/dashboard/app.py index 77903ac..ab2c497 100644 --- a/chromium-setup/emmc-provisioning/dashboard/app.py +++ b/chromium-setup/emmc-provisioning/dashboard/app.py @@ -332,7 +332,7 @@ def api_backup_upload(): @app.route("/api/backups") def api_backups(): - return jsonify({"backups": list_backups()}) + return jsonify({"backups": list_backups(), "backups_dir": str(BACKUPS_DIR)}) @app.route("/api/backups//set-as-golden", methods=["POST"]) diff --git a/chromium-setup/emmc-provisioning/dashboard/templates/index.html b/chromium-setup/emmc-provisioning/dashboard/templates/index.html index 19892a2..c3e0bfc 100644 --- a/chromium-setup/emmc-provisioning/dashboard/templates/index.html +++ b/chromium-setup/emmc-provisioning/dashboard/templates/index.html @@ -399,8 +399,9 @@
-

Saved backups

-

+

Saved backups

+

+

@@ -757,7 +758,11 @@ fetch('/api/log').then(function(r) { return r.json(); }).then(function(d) { document.getElementById('log').textContent = d.log || ''; }).catch(function() {}); } function fetchBackups() { - fetch('/api/backups').then(function(r) { return r.json(); }).then(function(d) { renderBackups(d.backups || []); }).catch(function() {}); + fetch('/api/backups').then(function(r) { return r.json(); }).then(function(d) { + renderBackups(d.backups || []); + var dirEl = document.getElementById('backupsDirHint'); + if (dirEl && d.backups_dir) dirEl.textContent = 'Stored in: ' + d.backups_dir; + }).catch(function() {}); } function getBuildVariant() { @@ -839,7 +844,7 @@ if (d.phase === 'idle' && !d.message) { el.textContent = ''; } else if (d.phase === 'done') { - el.textContent = 'Done: ' + (d.output_name || '') + ' — see Saved backups below. Set as golden to use for Deploy.'; + el.textContent = 'Done: ' + (d.output_name || '') + ' — see Saved backups above. Click "Set as golden" next to it to use for Deploy. If missing, click Refresh.'; fetchBackups(); fetchGoldenInfo(); } else if (d.phase === 'error') { @@ -894,6 +899,8 @@ document.getElementById('statusClearBtn').addEventListener('click', function() { fetch('/api/status-clear', { method: 'POST' }).then(function(r) { return r.json(); }).then(function(d) { if (d.ok) fetchStatus(); }); }); + var refreshBackupsBtn = document.getElementById('refreshBackupsBtn'); + if (refreshBackupsBtn) refreshBackupsBtn.onclick = function() { fetchBackups(); fetchGoldenInfo(); }; fetchStatus(); fetchLog();