44
55use Filament \Actions \Action ;
66use Filament \Forms \Components \FileUpload ;
7+ use Filament \Forms \Components \Select ;
78use Filament \Resources \Pages \ListRecords ;
89use Moox \Media \Models \Media ;
910use Moox \Media \Resources \MediaResource ;
@@ -26,6 +27,18 @@ public function getHeaderActions(): array
2627 ->label (__ ('media::fields.upload_file ' ))
2728 ->icon (config ('media.upload.resource.icon ' ))
2829 ->form ([
30+ Select::make ('collection_name ' )
31+ ->label (__ ('media::fields.collection ' ))
32+ ->options (function () {
33+ return Media::query ()
34+ ->distinct ()
35+ ->pluck ('collection_name ' , 'collection_name ' )
36+ ->toArray ();
37+ })
38+ ->searchable ()
39+ ->default ('default ' )
40+ ->required ()
41+ ->live (),
2942 FileUpload::make ('file ' )
3043 ->label (__ ('media::fields.select_file ' ))
3144 ->multiple (config ('media.upload.resource.multiple ' ))
@@ -53,12 +66,13 @@ public function getHeaderActions(): array
5366 ->previewable (config ('media.upload.resource.show_preview ' ))
5467 ->reorderable (config ('media.upload.resource.reorderable ' ))
5568 ->appendFiles (config ('media.upload.resource.append_files ' ))
56- ->afterStateUpdated (function ($ state ) {
57- if (! $ state ) {
69+ ->afterStateUpdated (function ($ state, $ get ) {
70+ if (!$ state ) {
5871 return ;
5972 }
6073
6174 $ processedFiles = session ('processed_files ' , []);
75+ $ collection = $ get ('collection_name ' ) ?? 'default ' ;
6276
6377 foreach ($ state as $ key => $ tempFile ) {
6478 if (in_array ($ key , $ processedFiles )) {
@@ -91,7 +105,7 @@ public function getHeaderActions(): array
91105 $ model ->exists = true ;
92106
93107 $ fileAdder = app (FileAdderFactory::class)->create ($ model , $ tempFile );
94- $ media = $ fileAdder ->preservingOriginal ()->toMediaCollection (' default ' );
108+ $ media = $ fileAdder ->preservingOriginal ()->toMediaCollection ($ collection );
95109
96110 $ title = pathinfo ($ tempFile ->getClientOriginalName (), PATHINFO_FILENAME );
97111
@@ -120,7 +134,8 @@ public function getHeaderActions(): array
120134
121135 session (['processed_files ' => $ processedFiles ]);
122136 }),
123- ])->modalSubmitAction (false ),
137+ ])
138+ ->modalSubmitAction (false ),
124139 ];
125140 }
126141}
0 commit comments