@php // CHANGELOG.md uses German Keep-a-Changelog headings as the canonical section keys; // map each to a localized display label + a badge tone. $sectionKey = [ 'Hinzugefügt' => 'added', 'Geändert' => 'changed', 'Behoben' => 'fixed', 'Sicherheit' => 'security', 'Entfernt' => 'removed', 'Veraltet' => 'deprecated', ]; $sectionTone = [ 'added' => 'accent', 'changed' => 'cyan', 'fixed' => 'neutral', 'security' => 'accent', 'removed' => 'neutral', 'deprecated' => 'neutral', ]; $sectionLabel = fn (string $g): string => isset($sectionKey[$g]) ? __('versions.section_'.$sectionKey[$g]) : $g; $tone = fn (string $g): string => $sectionTone[$sectionKey[$g] ?? ''] ?? 'neutral'; // Toned glance-dots on each collapsed release row (static classes so Tailwind's scanner sees them). $dotClass = ['accent' => 'bg-accent', 'cyan' => 'bg-cyan', 'neutral' => 'bg-ink-4']; $repoHost = parse_url($repository, PHP_URL_HOST); $repoPath = trim((string) parse_url($repository, PHP_URL_PATH), '/'); $isUpdate = $updateState === 'update'; @endphp {{-- Auto-check for updates on load (async, non-blocking) so an available update + button show without the operator clicking "check" first. autoCheck() no-ops while an update is running. --}}
{{ __('versions.eyebrow') }}
Clusev v{{ $version }}
@if ($updateStatus) {{ $updateStatus }} @else {{ __('versions.banner_default') }} @endif
{{ __('versions.changelog_empty') }}
@else{{ __('versions.update_hint') }}
sudo clusev update