1818
1919use Exception ;
2020use Pimcore \Bundle \StaticResolverBundle \Models \User \UserResolverInterface ;
21- use Pimcore \Bundle \StudioBackendBundle \Asset \ExecutionEngine \AutomationAction \Messenger \Messages \CsvFolderCollectionMessage ;
21+ use Pimcore \Bundle \StudioBackendBundle \Asset \ExecutionEngine \AutomationAction \Messenger \Messages \ExportFolderDataCollectionMessage ;
2222use Pimcore \Bundle \StudioBackendBundle \DataIndex \Grid \GridSearchInterface ;
2323use Pimcore \Bundle \StudioBackendBundle \ExecutionEngine \AutomationAction \AbstractHandler ;
2424use Pimcore \Bundle \StudioBackendBundle \ExecutionEngine \Util \Config ;
2525use Pimcore \Bundle \StudioBackendBundle \ExecutionEngine \Util \StepConfig ;
2626use Pimcore \Bundle \StudioBackendBundle \ExecutionEngine \Util \Trait \HandlerProgressTrait ;
2727use Pimcore \Bundle \StudioBackendBundle \Grid \MappedParameter \GridParameter ;
2828use Pimcore \Bundle \StudioBackendBundle \Grid \Mapper \FilterParameterMapperInterface ;
29+ use Pimcore \Bundle \StudioBackendBundle \Grid \Service \ColumnConfigurationServiceInterface ;
2930use Pimcore \Bundle \StudioBackendBundle \Grid \Service \GridServiceInterface ;
3031use Pimcore \Bundle \StudioBackendBundle \Mercure \Service \PublishServiceInterface ;
3132use Pimcore \Bundle \StudioBackendBundle \Util \Constant \ElementTypes ;
3637 * @internal
3738 */
3839#[AsMessageHandler]
39- final class CsvFolderDataCollectionHandler extends AbstractHandler
40+ final class ExportFolderDataCollectionHandler extends AbstractHandler
4041{
4142 use HandlerProgressTrait;
4243
4344 public function __construct (
45+ private readonly ColumnConfigurationServiceInterface $ columnConfigurationService ,
4446 private readonly FilterParameterMapperInterface $ filterParameterMapper ,
4547 private readonly PublishServiceInterface $ publishService ,
4648 private readonly UserResolverInterface $ userResolver ,
@@ -53,7 +55,7 @@ public function __construct(
5355 /**
5456 * @throws Exception
5557 */
56- public function __invoke (CsvFolderCollectionMessage $ message ): void
58+ public function __invoke (ExportFolderDataCollectionMessage $ message ): void
5759 {
5860 $ jobRun = $ this ->getJobRun ($ message );
5961 if (!$ this ->shouldBeExecuted ($ jobRun )) {
@@ -71,7 +73,7 @@ public function __invoke(CsvFolderCollectionMessage $message): void
7173 ));
7274 }
7375
74- $ jobFolder = $ this ->extractConfigFieldFromJobStepConfig ($ message , StepConfig::FOLDER_TO_EXPORT ->value );
76+ $ jobFolder = $ this ->extractConfigFieldFromJobStepConfig ($ message , StepConfig::ELEMENT_TO_EXPORT ->value );
7577
7678 $ columns = $ this ->extractConfigFieldFromJobStepConfig ($ message , StepConfig::CONFIG_COLUMNS ->value );
7779
@@ -92,9 +94,11 @@ public function __invoke(CsvFolderCollectionMessage $message): void
9294 return ;
9395 }
9496
95- $ columnCollection = $ this ->gridService ->getConfigurationFromArray (
97+ $ columnsDefinitions = $ this ->columnConfigurationService ->getAvailableAssetColumnConfiguration ();
98+
99+ $ columnCollection = $ this ->gridService ->getConfigurationForExport (
96100 $ columns ,
97- true
101+ $ columnsDefinitions
98102 );
99103
100104 foreach ($ assets ->getItems () as $ asset ) {
@@ -103,11 +107,12 @@ public function __invoke(CsvFolderCollectionMessage $message): void
103107 $ asset ->getId () => $ this ->gridService ->getGridValuesForElement (
104108 $ columnCollection ,
105109 $ asset ,
106- ElementTypes::TYPE_ASSET
110+ ElementTypes::TYPE_ASSET ,
111+ true
107112 ),
108113 ];
109114
110- $ this ->updateContextArrayValues ($ jobRun , StepConfig::CSV_EXPORT_DATA ->value , $ assetData );
115+ $ this ->updateContextArrayValues ($ jobRun , StepConfig::GRID_EXPORT_DATA ->value , $ assetData );
111116 } catch (Exception $ e ) {
112117 $ this ->abort ($ this ->getAbortData (
113118 Config::CSV_DATA_COLLECTION_FAILED_MESSAGE ->value ,
@@ -119,14 +124,26 @@ public function __invoke(CsvFolderCollectionMessage $message): void
119124 }
120125 }
121126
127+ $ csvExportDataInfo = $ jobRun ->getContext ()[StepConfig::GRID_EXPORT_DATA_INFO ->value ] ?? null ;
128+
129+ if ($ csvExportDataInfo === null ) {
130+ $ this ->updateContextArrayValues (
131+ $ jobRun ,
132+ StepConfig::GRID_EXPORT_DATA_INFO ->value ,
133+ [
134+ 'type ' => ElementTypes::TYPE_ASSET ,
135+ ]
136+ );
137+ }
138+
122139 $ this ->updateProgress ($ this ->publishService , $ jobRun , $ this ->getJobStep ($ message )->getName ());
123140 }
124141
125142 protected function configureStep (): void
126143 {
127- $ this ->stepConfiguration ->setRequired (StepConfig::FOLDER_TO_EXPORT ->value );
144+ $ this ->stepConfiguration ->setRequired (StepConfig::ELEMENT_TO_EXPORT ->value );
128145 $ this ->stepConfiguration ->setAllowedTypes (
129- StepConfig::FOLDER_TO_EXPORT ->value ,
146+ StepConfig::ELEMENT_TO_EXPORT ->value ,
130147 StepConfig::CONFIG_TYPE_ARRAY ->value
131148 );
132149 $ this ->stepConfiguration ->setRequired (StepConfig::CONFIG_COLUMNS ->value );
0 commit comments