/**
  * {@inheritdoc}
  */
 public function convertToExportFormat(array $exportedRecord, $skipNullValues = true)
 {
     if ($this->context->getValue('columns')) {
         $columns = $this->context->getValue('columns');
     } elseif ($this->context->hasOption('gridName')) {
         $gridName = $this->context->getOption('gridName');
         $gridConfig = $this->gridManagerLink->getService()->getConfigurationForGrid($gridName);
         $columns = $gridConfig->offsetGet('columns');
     } else {
         throw new InvalidConfigurationException('Configuration of datagrid export processor must contain "gridName" or "columns" options.');
     }
     if ($this->context->hasOption('gridParameters')) {
         $gridParams = $this->context->getOption('gridParameters');
         if ($gridParams->has(ColumnsExtension::COLUMNS_PARAM)) {
             $columnsParams = $gridParams->get(ColumnsExtension::COLUMNS_PARAM);
             $columns = $this->columnsHelper->reorderColumns($columns, $columnsParams);
         }
     }
     $result = [];
     foreach ($columns as $columnName => $column) {
         if (isset($column['renderable']) && false === $column['renderable']) {
             continue;
         }
         $val = isset($exportedRecord[$columnName]) ? $exportedRecord[$columnName] : null;
         $val = $this->applyFrontendFormatting($val, $column);
         $result[$this->translator->trans($column['label'])] = $val;
     }
     return $result;
 }
Ejemplo n.º 2
0
 /**
  * @param DatagridConfiguration $config
  *
  * @return array
  */
 protected function getColumnsWithOrder(DatagridConfiguration $config)
 {
     $columnsData = $config->offsetGet(self::COLUMNS_PATH);
     $columnsOrder = $this->columnsHelper->buildColumnsOrder($columnsData);
     $columns = $this->applyColumnsOrderAndRender($columnsData, $columnsOrder);
     return $columns;
 }
Ejemplo n.º 3
0
 /**
  * @param DatagridConfiguration $config
  * @param bool                  $default
  *
  * @return array
  */
 protected function getColumnsWithOrder(DatagridConfiguration $config, $default = false)
 {
     if (!$default) {
         $params = $this->getParameters()->get(ParameterBag::ADDITIONAL_PARAMETERS, []);
         $defaultGridView = $this->getDefaultGridView($config->getName());
         if (isset($params['view']) && $defaultGridView && $params['view'] === $defaultGridView->getId()) {
             return $defaultGridView->getColumnsData();
         }
     }
     $columnsData = $config->offsetGet(self::COLUMNS_PATH);
     $columnsOrder = $this->columnsHelper->buildColumnsOrder($columnsData);
     $columns = $this->applyColumnsOrderAndRender($columnsData, $columnsOrder);
     return $columns;
 }
Ejemplo n.º 4
0
 /**
  * Test reorder column for export grid
  *
  * @param array  $columnsArray
  * @param string $columnsParams
  * @param array  $result
  *
  * @dataProvider reorderColumnsProvider
  */
 public function testReorderColumns($columnsArray, $columnsParams, $result)
 {
     $isEqual = $this->columnsHelper->reorderColumns($columnsArray, $columnsParams);
     static::assertEquals($isEqual, $result);
 }