5
5
namespace App \Filament \Resources ;
6
6
7
7
use App \Actions \Article \ApprovedArticleAction ;
8
+ use App \Actions \Article \DeclineArticleAction ;
8
9
use App \Filament \Resources \ArticleResource \Pages ;
9
10
use App \Models \Article ;
10
11
use Awcodes \FilamentBadgeableColumn \Components \Badge ;
11
12
use Awcodes \FilamentBadgeableColumn \Components \BadgeableColumn ;
13
+ use Filament \Forms \Components \Textarea ;
14
+ use Filament \Notifications \Notification ;
12
15
use Filament \Resources \Resource ;
13
16
use Filament \Support \Enums \MaxWidth ;
14
17
use Filament \Tables ;
@@ -99,7 +102,6 @@ public static function table(Table $table): Table
99
102
100
103
return '' ;
101
104
})
102
- ->searchable ()
103
105
->sortable (),
104
106
])
105
107
->actions ([
@@ -123,15 +125,27 @@ public static function table(Table $table): Table
123
125
->label ('Décliner ' )
124
126
->icon ('heroicon-s-x-mark ' )
125
127
->color ('warning ' )
126
- ->modalHeading (__ ('Voulez vous décliner cet article ' ))
127
- ->successNotificationTitle (__ ('Opération effectuée avec succès ' ))
128
+ ->form ([
129
+ Textarea::make ('reason ' )
130
+ ->label (__ ('Raison du refus ' ))
131
+ ->maxLength (255 )
132
+ ->required (),
133
+ ])
134
+ ->modalHeading ('Décliner l \'article ' )
135
+ ->modalDescription ('Veuillez fournir une raison détaillée pour le refus de cet article. L \'auteur recevra cette explication. ' )
136
+ ->successNotificationTitle ('Article décliné avec succès ' )
128
137
->requiresConfirmation ()
129
138
->modalIcon ('heroicon-s-x-mark ' )
130
- ->action (function ($ record ): void {
139
+ ->action (function (array $ data , Article $ record ): void {
131
140
Gate::authorize ('decline ' , $ record );
132
141
133
- $ record ->declined_at = now ();
134
- $ record ->save ();
142
+ app (DeclineArticleAction::class)->execute ($ data ['reason ' ], $ record );
143
+
144
+ Notification::make ()
145
+ ->title ('Article décliné ' )
146
+ ->body ('L \'auteur a été notifié de la raison du refus. ' )
147
+ ->success ()
148
+ ->send ();
135
149
}),
136
150
Tables \Actions \Action::make ('show ' )
137
151
->icon ('untitledui-eye ' )
0 commit comments