/** * @param BuildBefore $event */ public function statusGridBuildBefore(BuildBefore $event) { $params = $event->getDatagrid()->getParameters(); if ($params->has('integrationType')) { $type = $params->get('integrationType'); $connectorChoices = $this->typesRegistry->getAvailableConnectorsTypesChoiceList($type); $event->getDatagrid()->getConfig()->offsetSetByPath('[filters][columns][connector][options][field_options][choices]', $connectorChoices); } }
/** * @param array $data * @param FormInterface $form */ protected function modify($data, FormInterface $form) { if ($this->hasChannelParent($form)) { $connectors = $form->getParent()->get('connectors'); if ($connectors) { $config = $connectors->getConfig()->getOptions(); unset($config['choice_list']); unset($config['choices']); } else { $config = []; } if (array_key_exists('auto_initialize', $config)) { $config['auto_initialize'] = false; } $allowedTypesChoices = $this->typeRegistry->getAvailableConnectorsTypesChoiceList('magento', function (ConnectorInterface $connector) use($data) { return $connector instanceof ExtensionAwareInterface ? $data : true; }); $form->getParent()->add('connectors', 'choice', array_merge($config, ['choices' => $allowedTypesChoices])); } }