/** * @param string $code * * @return string */ public function filterLabel($code) { $configuration = $this->manager->getDatagrid('product-grid')->getAcceptor()->getConfig(); $this->configurator->configure($configuration); $label = $configuration->offsetGetByPath(sprintf('[filters][columns][%s][label]', $code)); if (null === $label) { throw new \LogicException(sprintf('Attribute "%s" does not exists', $code)); } return $label; }
/** * {@inheritdoc} */ public function configureOptions(OptionsResolver $resolver) { $configuration = $this->manager->getDatagrid($this->datagrid)->getAcceptor()->getConfig(); $this->configurator->configure($configuration); $attributes = $configuration->offsetGetByPath('[filters][columns]'); $configs = $configuration->offsetGetByPath(sprintf(ConfiguratorInterface::SOURCE_PATH, ConfiguratorInterface::USEABLE_ATTRIBUTES_KEY)); $choices = []; foreach ($attributes as $code => $filter) { if (in_array($code, $this->disallowed)) { continue; } $group = 'System'; if (isset($configs[$code])) { $group = $configs[$code]['group']; } $choices[$group][$code] = $filter['label']; } $resolver->setDefaults(['choices' => $choices]); }