From 062d337dd0fa8fc03d34ea49565423a8cd5610db Mon Sep 17 00:00:00 2001 From: nexxo Date: Sun, 26 Jul 2026 00:13:20 +0200 Subject: [PATCH] fix(portal): move notices into the header, so the page stops scrolling twice MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The banners sat outside the h-screen shell, so the page scrolled and the content scrolled — two scrollbars whenever a maintenance window was active. Maintenance notices are now a bell with a count in the header, next to the user menu that was otherwise the only thing up there. Impersonation stays visible as a header chip rather than moving into the dropdown: it is a mode, not a notice, and acting as someone else without noticing is how mistakes happen. Also: the VPN status pill wrapped onto two lines in a narrow column. Co-Authored-By: Claude Opus 4.8 --- lang/de/maintenance.php | 1 + lang/en/maintenance.php | 1 + resources/views/layouts/portal-app.blade.php | 75 +++++++++++++------- resources/views/livewire/admin/vpn.blade.php | 2 +- 4 files changed, 53 insertions(+), 26 deletions(-) diff --git a/lang/de/maintenance.php b/lang/de/maintenance.php index d6f40ac..31e34a0 100644 --- a/lang/de/maintenance.php +++ b/lang/de/maintenance.php @@ -1,6 +1,7 @@ 'Hinweise', 'title' => 'Wartungen', 'subtitle' => 'Wartungsfenster anlegen, mehreren Hosts zuweisen und betroffene Kunden benachrichtigen.', 'empty' => 'Noch keine Wartungsfenster.', diff --git a/lang/en/maintenance.php b/lang/en/maintenance.php index 3a73935..327a491 100644 --- a/lang/en/maintenance.php +++ b/lang/en/maintenance.php @@ -1,6 +1,7 @@ 'Notices', 'title' => 'Maintenance', 'subtitle' => 'Create maintenance windows, assign them to multiple hosts and notify affected customers.', 'empty' => 'No maintenance windows yet.', diff --git a/resources/views/layouts/portal-app.blade.php b/resources/views/layouts/portal-app.blade.php index bb16593..0a17bcb 100644 --- a/resources/views/layouts/portal-app.blade.php +++ b/resources/views/layouts/portal-app.blade.php @@ -34,31 +34,6 @@ @endif - @foreach ($maintenanceWindows as $mw) - @php $isActive = now()->greaterThanOrEqualTo($mw->starts_at) && now()->lessThanOrEqualTo($mw->ends_at); @endphp -
- - {{ $mw->title }} - - {{ $isActive - ? __('maintenance.banner_active', ['end' => $mw->ends_at->isoFormat('LT')]) - : __('maintenance.banner_upcoming', ['start' => $mw->starts_at->isoFormat('LLL'), 'end' => $mw->ends_at->isoFormat('LT')]) }} - -
- @endforeach - @if (session('impersonator_id')) - {{-- Admin impersonation banner — visible on every portal page until the admin returns. --}} -
- {{ __('impersonate.banner', ['name' => auth()->user()->name]) }} -
- @csrf - -
-
- @endif
{{-- Sidebar: fixed drawer on small screens, fixed full-height column on large (R7). --}}