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();