From 9f22fa068e75354413f699f019e546a30548cf9e Mon Sep 17 00:00:00 2001 From: Lars Gebhardt-Kusche Date: Mon, 9 Mar 2026 00:05:15 +0100 Subject: [PATCH] assdasd --- modules/pi_control/assets/hosts.js | 38 ++++++++++++++++++++---------- modules/pi_control/pages/hosts.php | 6 +++++ tools/pi_control/check_updates.php | 4 ++++ 3 files changed, 35 insertions(+), 13 deletions(-) diff --git a/modules/pi_control/assets/hosts.js b/modules/pi_control/assets/hosts.js index f520abd..29e5fcd 100644 --- a/modules/pi_control/assets/hosts.js +++ b/modules/pi_control/assets/hosts.js @@ -142,33 +142,39 @@ const time = card.querySelector('[data-update-time]'); if (upd) { upd.classList.remove('badge-warn', 'badge-ok', 'badge-error'); - if (data.updates && typeof data.updates.count === 'number') { + if (data.updates && data.updates.error) { + upd.textContent = 'Updates: Fehler'; + upd.classList.add('badge-error'); + upd.setAttribute('title', data.updates.error); + } else if (data.updates && typeof data.updates.count === 'number') { upd.textContent = `Updates: ${data.updates.count}`; upd.classList.toggle('badge-warn', data.updates.count > 0); upd.classList.toggle('badge-ok', data.updates.count === 0); - if (data.updates.preview) { - upd.setAttribute('title', data.updates.preview); + if (data.updates.preview || data.updates.raw) { + upd.setAttribute('title', data.updates.preview || data.updates.raw); } } else { - upd.textContent = 'Updates: Fehler'; - upd.classList.add('badge-error'); - if (data.updates && data.updates.error) { - upd.setAttribute('title', data.updates.error); + upd.textContent = 'Updates: –'; + if (data.updates && (data.updates.preview || data.updates.raw)) { + upd.setAttribute('title', data.updates.preview || data.updates.raw); } } } if (upg) { upg.classList.remove('badge-warn', 'badge-ok', 'badge-error'); - if (data.os && typeof data.os.available === 'boolean') { + if (data.os && data.os.error) { + upg.textContent = 'OS: Fehler'; + upg.classList.add('badge-error'); + upg.setAttribute('title', data.os.error); + } else if (data.os && typeof data.os.available === 'boolean') { upg.textContent = data.os.available ? 'OS: Upgrade verfügbar' : 'OS: OK'; upg.classList.toggle('badge-warn', data.os.available); upg.classList.toggle('badge-ok', !data.os.available); if (data.os.raw) upg.setAttribute('title', data.os.raw); } else { - upg.textContent = 'OS: Fehler'; - upg.classList.add('badge-error'); - if (data.os && data.os.error) { - upg.setAttribute('title', data.os.error); + upg.textContent = 'OS: –'; + if (data.os && data.os.raw) { + upg.setAttribute('title', data.os.raw); } } } @@ -234,7 +240,11 @@ payload.updates.error = updateError; } else if (updateCount !== undefined && updateCount !== '') { payload.updates.count = Number(updateCount); - payload.updates.preview = ''; + payload.updates.preview = card.dataset.updatePreview || ''; + payload.updates.raw = card.dataset.updatePreview || ''; + } else { + payload.updates.preview = card.dataset.updatePreview || ''; + payload.updates.raw = card.dataset.updatePreview || ''; } if (upgradeError) { @@ -242,6 +252,8 @@ } else if (upgradeAvailable !== undefined && upgradeAvailable !== '') { payload.os.available = upgradeAvailable === '1' || upgradeAvailable === 'true'; payload.os.raw = upgradeRaw; + } else { + payload.os.raw = upgradeRaw; } setUpdateUi(card, payload); diff --git a/modules/pi_control/pages/hosts.php b/modules/pi_control/pages/hosts.php index 5200afb..d7c9adf 100644 --- a/modules/pi_control/pages/hosts.php +++ b/modules/pi_control/pages/hosts.php @@ -64,6 +64,10 @@ SH; $updateCount = (int)$m[1]; } } + $updatePreview = trim($updOutStr); + if (strlen($updatePreview) > 1200) { + $updatePreview = substr($updatePreview, 0, 1200); + } [$upgExit, $upgOut, $upgErr] = runSshCommandCapture($host, $upgradeCmd, $strictHostKey, 25); $upgOutStr = (string)$upgOut; @@ -108,6 +112,7 @@ SH; 'updates' => [ 'count' => $updateCount, 'preview' => $updatePreview, + 'raw' => $updatePreview, 'error' => $updExit === 0 && !$updateErr ? '' : trim($updErrStr ?: $updOutStr), ], 'os' => [ @@ -362,6 +367,7 @@ function hostAuthOk(array $host, bool $strictHostKey): bool data-update-checked="" data-update-count="" data-update-error="" + data-update-preview="" data-upgrade-available="" data-upgrade-raw="" data-upgrade-error=""> diff --git a/tools/pi_control/check_updates.php b/tools/pi_control/check_updates.php index 908bc1f..3360576 100644 --- a/tools/pi_control/check_updates.php +++ b/tools/pi_control/check_updates.php @@ -40,6 +40,10 @@ foreach ($hosts as $host) { $updateCount = (int)$m[1]; } } + $updatePreview = trim($updOutStr); + if (strlen($updatePreview) > 1200) { + $updatePreview = substr($updatePreview, 0, 1200); + } [$upgExit, $upgOut, $upgErr] = runSshCommandCapture($host, $upgradeCmd, $strictHostKey, 25); $upgOutStr = (string)$upgOut;