From 599405ce18d3ac2bb242b8e8da2621cafed876a6 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 15 Jul 2026 18:55:54 +0000 Subject: [PATCH 1/2] Initial plan From 59b734995b9f26ad6a071d9610a67bb12b9d730f Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 15 Jul 2026 18:58:10 +0000 Subject: [PATCH 2/2] feat: move Reboot button from sidebar to header, between role badge and Sign Out --- .../static/css/header.css | 27 +++++++++++++++++++ .../static/css/layout.css | 15 ----------- app/sovran_systemsos_web/static/js/events.js | 3 +++ app/sovran_systemsos_web/static/js/state.js | 3 +++ app/sovran_systemsos_web/static/js/tiles.js | 17 ------------ app/sovran_systemsos_web/templates/index.html | 1 + 6 files changed, 34 insertions(+), 32 deletions(-) diff --git a/app/sovran_systemsos_web/static/css/header.css b/app/sovran_systemsos_web/static/css/header.css index d4c2f90..edd43e0 100644 --- a/app/sovran_systemsos_web/static/css/header.css +++ b/app/sovran_systemsos_web/static/css/header.css @@ -91,3 +91,30 @@ border-color: var(--accent-color); color: var(--accent-color); } + +/* ── Header reboot button ───────────────────────────────────────── */ + +.btn-header-reboot { + background: transparent; + border: 1px solid rgba(184, 125, 0, 0.35); + color: #c98d08; + font-size: 0.78rem; + font-weight: 600; + padding: 4px 12px; + border-radius: var(--radius-btn); + cursor: pointer; + transition: border-color 0.15s, color 0.15s, background-color 0.15s; +} + +.btn-header-reboot:hover { + border-color: #b87d00; + color: #e0a010; + background-color: rgba(184, 125, 0, 0.1); +} + +@media (max-width: 480px) { + .btn-header-reboot { + padding: 4px 8px; + font-size: 0.72rem; + } +} diff --git a/app/sovran_systemsos_web/static/css/layout.css b/app/sovran_systemsos_web/static/css/layout.css index 446b3fd..aa90940 100644 --- a/app/sovran_systemsos_web/static/css/layout.css +++ b/app/sovran_systemsos_web/static/css/layout.css @@ -84,21 +84,6 @@ margin: 16px 0; } -/* ── Sidebar restart button (amber/muted treatment) ─────────────── */ - -.sidebar-restart-btn { - border-color: rgba(184, 125, 0, 0.25); -} - -.sidebar-restart-btn:hover { - border-color: #b87d00; - background-color: rgba(184, 125, 0, 0.08); -} - -.sidebar-restart-btn .sidebar-restart-hint { - color: #c98d08; -} - /* ── Upgrade modal ──────────────────────────────────────────────── */ .upgrade-dialog { diff --git a/app/sovran_systemsos_web/static/js/events.js b/app/sovran_systemsos_web/static/js/events.js index 4576a4f..2d54236 100644 --- a/app/sovran_systemsos_web/static/js/events.js +++ b/app/sovran_systemsos_web/static/js/events.js @@ -48,6 +48,9 @@ if ($upgradeModal) $upgradeModal.addEventListener("click", function(e) { if (e.t if ($restartConfirmCancel) $restartConfirmCancel.addEventListener("click", closeRestartConfirmDialog); if ($restartConfirmModal) $restartConfirmModal.addEventListener("click", function(e) { if (e.target === $restartConfirmModal) closeRestartConfirmDialog(); }); if ($restartConfirmModal) $restartConfirmModal.addEventListener("keydown", function(e) { if (e.key === "Escape") closeRestartConfirmDialog(); }); + +// Header Reboot button +if ($headerRebootBtn) $headerRebootBtn.addEventListener("click", function() { openRestartConfirmDialog(); }); if ($restartConfirmOk) $restartConfirmOk.addEventListener("click", function() { if ($restartConfirmOk.disabled) return; $restartConfirmOk.disabled = true; diff --git a/app/sovran_systemsos_web/static/js/state.js b/app/sovran_systemsos_web/static/js/state.js index 53c57d2..235a080 100644 --- a/app/sovran_systemsos_web/static/js/state.js +++ b/app/sovran_systemsos_web/static/js/state.js @@ -110,5 +110,8 @@ const $restartConfirmOk = document.getElementById("restart-confirm-ok-btn"); const $restartConfirmCancel = document.getElementById("restart-confirm-cancel-btn"); const $restartConflictBox = document.getElementById("restart-conflict-box"); +// Header reboot button +const $headerRebootBtn = document.getElementById("btn-header-reboot"); + // System status banner // (removed — health is now shown per-tile via the composite health field) \ No newline at end of file diff --git a/app/sovran_systemsos_web/static/js/tiles.js b/app/sovran_systemsos_web/static/js/tiles.js index b2bbfc5..e07bf04 100644 --- a/app/sovran_systemsos_web/static/js/tiles.js +++ b/app/sovran_systemsos_web/static/js/tiles.js @@ -133,23 +133,6 @@ function renderSidebarSupport(supportServices) { var hr = document.createElement("hr"); hr.className = "sidebar-divider"; $sidebarSupport.appendChild(hr); - - // ── Restart Entire System button (bottom, visually separated) - var restartDivider = document.createElement("hr"); - restartDivider.className = "sidebar-divider"; - $sidebarSupport.appendChild(restartDivider); - - var restartBtn = document.createElement("button"); - restartBtn.className = "sidebar-support-btn sidebar-restart-btn"; - restartBtn.id = "sidebar-btn-restart"; - restartBtn.innerHTML = - '' + - '' + - 'Restart Entire System' + - 'Restarts the computer, desktop, and all services' + - ''; - restartBtn.addEventListener("click", function() { openRestartConfirmDialog(); }); - $sidebarSupport.appendChild(restartBtn); } function buildTile(svc) { diff --git a/app/sovran_systemsos_web/templates/index.html b/app/sovran_systemsos_web/templates/index.html index b29c1b3..9b495b0 100644 --- a/app/sovran_systemsos_web/templates/index.html +++ b/app/sovran_systemsos_web/templates/index.html @@ -24,6 +24,7 @@ Sovran_SystemsOS Hub
Loading… +