resetPage(); } public function updatedAreaFilter(): void { $this->resetPage(); } public function updatedTypeFilter(): void { $this->resetPage(); } public function with(): array { $presets = AdminPreset::query() ->when(filled($this->search), function ($query): void { $term = $this->search; $query->where(function ($query) use ($term): void { $query->where('key', 'like', '%'.$term.'%') ->orWhere('label', 'like', '%'.$term.'%') ->orWhere('value', 'like', '%'.$term.'%'); }); }) ->when($this->areaFilter !== 'all', fn ($query) => $query->where('area', $this->areaFilter)) ->when($this->typeFilter !== 'all', fn ($query) => $query->where('type', $this->typeFilter)) ->orderBy('area') ->orderBy('key') ->paginate(50); return [ 'presets' => $presets, 'areas' => $this->areas(), 'types' => $this->types(), ]; } private function areas() { return app(AdminPerformanceCache::class)->remember(AdminPerformanceCache::PresetAreas, AdminPerformanceCache::OptionsTtl, fn () => AdminPreset::query() ->select('area') ->distinct() ->orderBy('area') ->pluck('area')); } private function types() { return app(AdminPerformanceCache::class)->remember(AdminPerformanceCache::PresetTypes, AdminPerformanceCache::OptionsTtl, fn () => AdminPreset::query() ->select('type') ->distinct() ->orderBy('type') ->pluck('type')); } }; ?>
{{-- ============== PAGE HEADER ============== --}}
{{ __('Admin Backend') }} {{ __('Administration · Stammdaten') }}

{{ __('Voreinstellungen') }}

{{ __('Zentrale Admin-Presets fuer Texte, Zahlen und weitere Werte.') }}

{{ __('Neue Voreinstellung') }}
@if (session('success'))
{{ session('success') }}
@endif {{-- ============== FILTER-PANEL ============== --}}
{{ __('Filter & Suche') }}
@foreach ($areas as $area) @endforeach @foreach ($types as $type) @endforeach
{{-- ============== TABELLE ============== --}}
{{ __('Alle Voreinstellungen') }} {{ __(':count Einträge', ['count' => $presets->total()]) }}
{{ __('Key') }} {{ __('Bereich') }} {{ __('Typ') }} {{ __('Wert') }} {{ __('Status') }} {{ __('Aktionen') }} @forelse ($presets as $preset)
{{ $preset->label }}
{{ $preset->key }}
{{ $preset->area }} {{ $preset->type }}
{{ \Illuminate\Support\Str::limit($preset->value ?? '-', 140) }}
@if ($preset->is_active) {{ __('Aktiv') }} @else {{ __('Inaktiv') }} @endif
@empty
{{ __('Keine Voreinstellungen gefunden.') }}
@endforelse
{{ $presets->links('components.portal.pagination') }}