handling form for exportInterface

This commit is contained in:
Julien Fastré 2016-04-19 12:38:48 +02:00
parent 5dd98945f8
commit e57b421aec
3 changed files with 23 additions and 6 deletions

View File

@ -402,7 +402,7 @@ class ExportManager
'class' => self::class, 'function' => __FUNCTION__ 'class' => self::class, 'function' => __FUNCTION__
)); ));
$result = $export->getResult($qb, array()); $result = $export->getResult($qb, $data[ExportType::EXPORT_KEY]);
/* @var $formatter Formatter\CSVFormatter */ /* @var $formatter Formatter\CSVFormatter */
$formatter = $this->getFormatter($this->getFormatterAlias($data)); $formatter = $this->getFormatter($this->getFormatterAlias($data));
@ -414,8 +414,13 @@ class ExportManager
$aggregatorsData[$alias] = $data[ExportType::AGGREGATOR_KEY][$alias]['form']; $aggregatorsData[$alias] = $data[ExportType::AGGREGATOR_KEY][$alias]['form'];
} }
return $formatter->getResponse($result, $formatterData, $exportAlias, $data, return $formatter->getResponse(
$filters, $aggregatorsData); $result,
$formatterData,
$exportAlias,
$data[ExportType::EXPORT_KEY],
$filters,
$aggregatorsData);
} }
/** /**

View File

@ -141,9 +141,14 @@ class CSVFormatter implements FormatterInterface
* @param \Chill\MainBundle\Export\FilterInterface[] $filters * @param \Chill\MainBundle\Export\FilterInterface[] $filters
* @param \Chill\MainBundle\Export\AggregatorInterface[] $aggregators * @param \Chill\MainBundle\Export\AggregatorInterface[] $aggregators
*/ */
public function getResponse($result, $formatterData, $exportAlias, array $exportData, array $filtersData, public function getResponse(
array $aggregatorsData) $result,
{ $formatterData,
$exportAlias,
array $exportData,
array $filtersData,
array $aggregatorsData
) {
$this->result = $result; $this->result = $result;
$this->orderingHeaders($formatterData); $this->orderingHeaders($formatterData);
$this->export = $this->exportManager->getExport($exportAlias); $this->export = $this->exportManager->getExport($exportAlias);

View File

@ -28,6 +28,7 @@ use Symfony\Component\Form\FormBuilderInterface;
use Chill\MainBundle\Export\ExportManager; use Chill\MainBundle\Export\ExportManager;
use Chill\MainBundle\Form\Type\Export\FilterType; use Chill\MainBundle\Form\Type\Export\FilterType;
use Chill\MainBundle\Form\Type\Export\AggregatorType; use Chill\MainBundle\Form\Type\Export\AggregatorType;
use Symfony\Component\Form\Extension\Core\Type\FormType;
/** /**
* *
@ -90,6 +91,12 @@ class ExportType extends AbstractType
$builder->add($aggregatorBuilder); $builder->add($aggregatorBuilder);
// add export form
$exportBuilder = $builder->create(self::EXPORT_KEY, FormType::class, array('compound' => true));
$this->exportManager->getExport($options['export_alias'])
->buildForm($exportBuilder);
$builder->add($exportBuilder);
$builder->add(self::PICK_FORMATTER_KEY, PickFormatterType::class, array( $builder->add(self::PICK_FORMATTER_KEY, PickFormatterType::class, array(
'export_alias' => $options['export_alias'] 'export_alias' => $options['export_alias']
)); ));