resetPage(); } public function updatingFilter(): void { $this->resetPage(); } public function updatingServerFilter(): void { $this->resetPage(); } public function updatingSort(): void { $this->resetPage(); } public function setFilter(string $f): void { $this->filter = $f; $this->resetPage(); } public function with(): array { $query = Site::query()->with('server'); if ($this->search !== '') { $query->where('domain', 'like', '%' . $this->search . '%'); } match ($this->filter) { 'updates' => $query->where('updates_pending', '>', 0), 'warnings' => $query->where('status', 'warn'), 'critical' => $query->where('status', 'bad'), default => null, }; if ($this->serverFilter !== '') { $query->where('server_id', $this->serverFilter); } $query->orderBy(match ($this->sort) { 'visitors' => 'visitors_24h', 'response' => 'response_ms', 'updates' => 'updates_pending', default => 'domain', }, $this->sort === 'name' ? 'asc' : 'desc'); return [ 'sites' => $query->paginate(15), 'servers' => Server::orderBy('name')->get(), 'totalSites' => Site::count(), 'updatesCount' => Site::where('updates_pending', '>', 0)->count(), 'warnCount' => Site::where('status', 'warn')->count(), 'criticalCount' => Site::where('status', 'bad')->count(), 'avgPagespeed' => (int) Site::avg('pagespeed_score'), 'totalVisitors' => Site::sum('visitors_24h'), ]; } }; ?>
{{-- ───── Topbar ───── --}}

Sites

{{ $totalSites }} wordpress-installationen
{{ $totalSites }} online
{{-- ───── Metric tiles ───── --}}
Sites Online
{{ $totalSites }}/{{ $totalSites }}
100% erreichbar
Updates offen
{{ $updatesCount }}
{{ $criticalCount }} kritisch · {{ $warnCount }} warn
Ø PageSpeed
{{ $avgPagespeed }}/100
Core Web Vitals OK
Besucher / 24h
{{ number_format($totalVisitors / 1000, 0, ',', '.') }}k
↑ 12% vs Vorwoche
{{-- ───── Sites table ───── --}}
@forelse ($sites as $site) @empty @endforelse
Site Server WordPress PHP Besucher / 24h Response Status
{{ mb_substr($site->domain, 0, 1) }}
{{ $site->domain }} ssl ✓ · {{ $site->cache_enabled ? 'cache an' : 'cache aus' }}
{{ $site->server->name }} WP {{ $site->wp_version }} PHP {{ $site->php_version }} {{ number_format($site->visitors_24h, 0, ',', '.') }} {{ $site->response_ms }}ms {{ match($site->status) { 'ok' => $site->updates_pending > 0 ? $site->updates_pending . ' Updates' : 'Optimal', 'warn' => 'Wartung nötig', 'bad' => 'Kritisch', default => $site->status, } }}
Keine Sites gefunden.
{{ $sites->firstItem() ?? 0 }}–{{ $sites->lastItem() ?? 0 }} von {{ $sites->total() }}