Collapse dashboard server status into top bar and include .env in backup restore.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-07-02 15:43:48 +08:00
parent aae897b7eb
commit 481086eddc
5 changed files with 149 additions and 29 deletions
+29
View File
@@ -41,6 +41,9 @@
var serverDiskSubEl = document.getElementById('dash-server-disk-sub');
var serverNetUpEl = document.getElementById('dash-server-net-up');
var serverNetDownEl = document.getElementById('dash-server-net-down');
var serverCardEl = document.getElementById('dash-server-card');
var serverToggleEl = document.getElementById('dash-server-toggle');
var serverSummaryEl = document.getElementById('dash-server-summary');
var pollTimer = null;
var pollInFlight = false;
@@ -78,6 +81,30 @@
riskToggleEl.setAttribute('aria-expanded', expanded ? 'true' : 'false');
}
function initServerToggle() {
if (!serverCardEl || !serverToggleEl) return;
serverCardEl.hidden = true;
serverToggleEl.setAttribute('aria-expanded', 'false');
function toggleServer() {
var expanded = serverCardEl.hidden;
serverCardEl.hidden = !expanded;
serverToggleEl.setAttribute('aria-expanded', expanded ? 'true' : 'false');
}
serverToggleEl.addEventListener('click', toggleServer);
}
function buildServerSummary(server) {
if (!server) return '—';
var parts = [];
if (server.hostname) parts.push(server.hostname);
if (server.public_ip) parts.push('外网 ' + server.public_ip);
if (server.private_ip) parts.push('内网 ' + server.private_ip);
if (server.cpu_pct != null) parts.push('CPU ' + server.cpu_pct + '%');
if (server.memory_pct != null) parts.push('内存 ' + server.memory_pct + '%');
if (server.disk_pct != null) parts.push('硬盘 ' + server.disk_pct + '%');
return parts.length ? parts.join(' · ') : '—';
}
function initRiskToggle() {
if (!riskCardEl || !riskToggleEl) return;
if (shouldCollapseRiskDefault()) {
@@ -524,6 +551,7 @@
function applyServer(server) {
if (!server) return;
if (serverSummaryEl) serverSummaryEl.textContent = buildServerSummary(server);
if (serverHostEl) serverHostEl.textContent = server.hostname || '—';
if (serverUptimeEl) {
serverUptimeEl.textContent = server.uptime_label
@@ -1102,6 +1130,7 @@
startPolling();
connectPositionStream();
initServerToggle();
initRiskToggle();
initDetailModal();
initMobileLists();