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')); } }; ?>
{{ __('Zentrale Admin-Presets fuer Texte, Zahlen und weitere Werte.') }}