4
4
5
5
namespace App \Filament \Resources ;
6
6
7
- use App \Filament \Resources \UserResource \Pages ;
8
7
use App \Models \User ;
9
- use Awcodes \FilamentBadgeableColumn \Components \Badge ;
10
- use Awcodes \FilamentBadgeableColumn \Components \BadgeableColumn ;
11
- use Filament \Resources \Resource ;
12
8
use Filament \Tables ;
13
9
use Filament \Tables \Table ;
10
+ use Filament \Resources \Resource ;
11
+ use Filament \Tables \Actions \Action ;
12
+ use Filament \Forms \Components \TextInput ;
13
+ use Filament \Tables \Actions \ActionGroup ;
14
14
use Illuminate \Database \Eloquent \Builder ;
15
+ use App \Filament \Resources \UserResource \Pages ;
16
+ use Awcodes \FilamentBadgeableColumn \Components \Badge ;
17
+ use Awcodes \FilamentBadgeableColumn \Components \BadgeableColumn ;
15
18
16
19
final class UserResource extends Resource
17
20
{
@@ -64,8 +67,36 @@ public static function table(Table $table): Table
64
67
->nullable (),
65
68
])
66
69
->actions ([
67
- Tables \Actions \DeleteAction::make ()
68
- ->iconButton (),
70
+ ActionGroup::make ([
71
+ Action::make ('ban ' )
72
+ ->label (__ ('actions.ban ' ))
73
+ ->icon ('untitledui-archive ' )
74
+ ->color ('warning ' )
75
+ ->visible (fn ($ record ) => $ record ->banned_at == null )
76
+ ->modalHeading (__ ('Bannir l \'utilisateur ' ))
77
+ ->modalDescription (__ ('Veuillez entrer la raison du bannissement. ' ))
78
+ ->form ([
79
+ TextInput::make ('banned_reason ' )
80
+ ->label (__ ('Raison du bannissement ' ))
81
+ ->required (),
82
+ ])
83
+ ->action (function ($ record , array $ data ) {
84
+ $ record ->ban ($ data ['banned_reason ' ]);
85
+ })
86
+ ->requiresConfirmation (),
87
+
88
+ Action::make ('unban ' )
89
+ ->label (__ ('actions.unban ' ))
90
+ ->icon ('heroicon-o-check-circle ' )
91
+ ->color ('success ' )
92
+ ->visible (fn ($ record ) => $ record ->banned_at !== null )
93
+ ->action (function ($ record ) {
94
+ $ record ->unban ();
95
+ })
96
+ ->requiresConfirmation (),
97
+
98
+ Tables \Actions \DeleteAction::make (),
99
+ ])->icon ('heroicon-m-ellipsis-horizontal ' ),
69
100
])
70
101
->bulkActions ([
71
102
Tables \Actions \DeleteBulkAction::make (),
@@ -78,4 +109,4 @@ public static function getPages(): array
78
109
'index ' => Pages \ListUsers::route ('/ ' ),
79
110
];
80
111
}
81
- }
112
+ }
0 commit comments