4
4
5
5
use Filament \Forms \Form ;
6
6
use Filament \Tables \Table ;
7
+ use Illuminate \Support \Arr ;
7
8
use Filament \Resources \Resource ;
8
9
use Illuminate \Support \Facades \Hash ;
9
10
use Filament \Forms \Components \Select ;
10
11
use Filament \Tables \Actions \EditAction ;
11
12
use Filament \Tables \Actions \ViewAction ;
13
+ use Filament \Tables \Actions \RestoreAction ;
14
+ use Filament \Tables \Actions \RestoreBulkAction ;
15
+ use Illuminate \Database \Eloquent \Builder ;
12
16
use Filament \Tables \Columns \IconColumn ;
13
17
use Filament \Tables \Columns \TagsColumn ;
14
18
use Filament \Tables \Columns \TextColumn ;
15
19
use Filament \Forms \Components \TextInput ;
16
20
use Filament \Tables \Actions \DeleteAction ;
21
+ use Filament \Tables \Actions \ForceDeleteAction ;
22
+ use Filament \Tables \Actions \ForceDeleteBulkAction ;
17
23
use Filament \Tables \Filters \TernaryFilter ;
18
24
use Filament \Tables \Actions \DeleteBulkAction ;
19
25
use Filament \Forms \Components \Section as Card ;
@@ -87,7 +93,7 @@ public static function form(Form $form): Form
87
93
88
94
public static function table (Table $ table ): Table
89
95
{
90
- return $ table
96
+ $ table = $ table
91
97
->columns ([
92
98
TextColumn::make ('id ' )
93
99
->sortable ()
@@ -115,16 +121,36 @@ public static function table(Table $table): Table
115
121
TernaryFilter::make ('email_verified_at ' )
116
122
->label (strval (__ ('filament-authentication::filament-authentication.filter.verified ' )))
117
123
->nullable (),
118
- ])
119
- ->actions ([
124
+ ]);
125
+
126
+ $ actions = [
120
127
ViewAction::make (),
121
128
EditAction::make (),
129
+ FilamentAuthentication::getPlugin ()->impersonateEnabled () ? ImpersonateLink::make () : null ,
122
130
DeleteAction::make (),
123
- ImpersonateLink::make (),
124
- ])
125
- ->bulkActions ([
131
+ FilamentAuthentication::getPlugin ()->usesSoftDeletes () ? ForceDeleteAction::make () : null ,
132
+ FilamentAuthentication::getPlugin ()->usesSoftDeletes () ? RestoreAction::make () : null ,
133
+ ];
134
+
135
+ $ bulkActions = [
126
136
DeleteBulkAction::make (),
127
- ]);
137
+ FilamentAuthentication::getPlugin ()->usesSoftDeletes () ? RestoreBulkAction::make () : null ,
138
+ FilamentAuthentication::getPlugin ()->usesSoftDeletes () ? ForceDeleteBulkAction::make () : null ,
139
+ ];
140
+
141
+
142
+ $ table ->actions (Arr::whereNotNull ($ actions ));
143
+ $ table ->bulkActions (Arr::whereNotNull ($ bulkActions ));
144
+
145
+ if (FilamentAuthentication::getPlugin ()->usesSoftDeletes ()) {
146
+ $ table ->pushFilters ([
147
+ \Filament \Tables \Filters \TrashedFilter::make ()
148
+ ]);
149
+ }
150
+
151
+ return $ table ;
152
+
153
+
128
154
}
129
155
130
156
public static function getRelations (): array
@@ -143,4 +169,14 @@ public static function getPages(): array
143
169
'view ' => ViewUser::route ('/{record} ' ),
144
170
];
145
171
}
172
+
173
+
174
+ public static function getEloquentQuery (): Builder
175
+ {
176
+ return parent ::getEloquentQuery ()
177
+ ->when (
178
+ FilamentAuthentication::getPlugin ()->usesSoftDeletes (),
179
+ fn (Builder $ builder ) => $ builder ->withTrashed ()
180
+ );
181
+ }
146
182
}
0 commit comments