diff --git a/app/Filament/Resources/Users/UserResource.php b/app/Filament/Resources/Users/UserResource.php index 1b7ec44..cc37390 100644 --- a/app/Filament/Resources/Users/UserResource.php +++ b/app/Filament/Resources/Users/UserResource.php @@ -11,6 +11,7 @@ use Filament\Resources\Resource; use Filament\Schemas\Schema; use Filament\Tables\Table; +use Illuminate\Database\Eloquent\Model; class UserResource extends Resource { @@ -18,7 +19,21 @@ class UserResource extends Resource protected static string|\BackedEnum|null $navigationIcon = 'heroicon-o-users'; - protected static ?string $recordTitleAttribute = 'full_name'; + protected static ?string $recordTitleAttribute = 'email'; + + public static function getGloballySearchableAttributes(): array + { + return ['email', 'first_name', 'last_name', 'roles.name']; + } + + public static function getGlobalSearchResultDetails(Model $record): array + { + return [ + 'Name' => $record->fullName, + 'Roles' => $record->roles->pluck('name')->join(', '), + 'Verified' => $record->hasVerifiedEmail() ? 'Yes' : 'No', + ]; + } public static function form(Schema $schema): Schema { diff --git a/app/Filament/Widgets/UserStats.php b/app/Filament/Widgets/UserStats.php index d4fc8b9..2c7037b 100644 --- a/app/Filament/Widgets/UserStats.php +++ b/app/Filament/Widgets/UserStats.php @@ -12,8 +12,8 @@ protected function getStats(): array { return [ Stat::make('Users', User::query()->count()), - Stat::make('New users (last 7 days)', User::query()->where('created_at', '>=', \now()->subDays(7))->count()), - Stat::make('New users (last 30 days)', User::query()->where('created_at', '>=', \now()->subDays(30))->count()), + Stat::make('New users (last 7 days)', User::query()->where('created_at', '>=', now()->subDays(7))->count()), + Stat::make('New users (last 30 days)', User::query()->where('created_at', '>=', now()->subDays(30))->count()), ]; } } diff --git a/app/Http/Controllers/LoginController.php b/app/Http/Controllers/LoginController.php index bb20921..1713f2d 100644 --- a/app/Http/Controllers/LoginController.php +++ b/app/Http/Controllers/LoginController.php @@ -34,6 +34,6 @@ public function store(LoginStoreRequest $request) return redirect()->to($request->validated('redirect')); } - return redirect()->intended(\route('home')); + return redirect()->intended(route('home')); } } diff --git a/app/Models/User.php b/app/Models/User.php index 3bc793a..a31f8f9 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -7,6 +7,7 @@ use Filament\Models\Contracts\HasName; use Filament\Panel; use Illuminate\Contracts\Auth\MustVerifyEmail; +use Illuminate\Database\Eloquent\Attributes\Scope; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Casts\Attribute; use Illuminate\Database\Eloquent\Factories\HasFactory; @@ -56,7 +57,7 @@ protected function allPermissions(): Attribute ); } - #[\Illuminate\Database\Eloquent\Attributes\Scope] + #[Scope] protected function hasRoles(Builder $query, array $roles): void { $query->whereHas('roles', fn (Builder $query) => $query->whereIn('name', $roles)); diff --git a/app/Policies/PermissionPolicy.php b/app/Policies/PermissionPolicy.php deleted file mode 100644 index 99df0dc..0000000 --- a/app/Policies/PermissionPolicy.php +++ /dev/null @@ -1,14 +0,0 @@ -hasRole(Role::SUPER_ADMIN); - } -} diff --git a/app/Policies/RolePolicy.php b/app/Policies/RolePolicy.php deleted file mode 100644 index cf3ce85..0000000 --- a/app/Policies/RolePolicy.php +++ /dev/null @@ -1,14 +0,0 @@ -hasRole(Role::SUPER_ADMIN); - } -} diff --git a/app/Providers/AuthServiceProvider.php b/app/Providers/AuthServiceProvider.php deleted file mode 100644 index 8c02392..0000000 --- a/app/Providers/AuthServiceProvider.php +++ /dev/null @@ -1,17 +0,0 @@ - RolePolicy::class, - Permission::class => PermissionPolicy::class, - ]; -} diff --git a/app/Providers/Filament/AdminPanelProvider.php b/app/Providers/Filament/AdminPanelProvider.php index 9219e69..3d6fc88 100644 --- a/app/Providers/Filament/AdminPanelProvider.php +++ b/app/Providers/Filament/AdminPanelProvider.php @@ -26,6 +26,8 @@ public function panel(Panel $panel): Panel ->id('admin') ->path('admin') ->topbar(false) + ->globalSearchKeyBindings(['command+k', 'ctrl+k']) + ->globalSearchFieldKeyBindingSuffix() ->viteTheme('resources/css/filament/admin/theme.css') ->colors([ 'primary' => '#1e293b', diff --git a/bootstrap/providers.php b/bootstrap/providers.php index 0842610..22744d1 100644 --- a/bootstrap/providers.php +++ b/bootstrap/providers.php @@ -2,6 +2,5 @@ return [ App\Providers\AppServiceProvider::class, - App\Providers\AuthServiceProvider::class, App\Providers\Filament\AdminPanelProvider::class, ];