/** * {@inheritdoc} */ public function visitResult(DatagridConfiguration $config, ResultsObject $result) { $rows = $result->offsetGetByPath('[data]'); if (!is_array($rows)) { throw new UnexpectedTypeException($rows, 'array'); } $mappingConfig = $this->mapper->getMappingConfig(); $rows = array_map(function (ResultRecordInterface $record) use($mappingConfig) { $entityClass = $record->getValue('entityName'); $entityId = $record->getValue('recordId'); $entityConfig = array_key_exists($entityClass, $mappingConfig) ? $entityConfig = $this->mapper->getEntityConfig($entityClass) : []; return new ResultItem($this->em, $entityClass, $entityId, null, null, $entityConfig); }, $rows); $entities = $this->resultFormatter->getResultEntities($rows); $resultRows = []; /** @var ResultItem $item */ foreach ($rows as $item) { $entityClass = $item->getEntityName(); $entityId = $item->getRecordId(); $entity = $entities[$entityClass][$entityId]; $this->dispatcher->dispatch(PrepareResultItemEvent::EVENT_NAME, new PrepareResultItemEvent($item, $entity)); $resultRows[] = new ResultRecord(['entity' => $entity, 'indexer_item' => $item]); } $result->offsetSet('data', $resultRows); }
/** * {@inheritDoc} */ public function visitResult(DatagridConfiguration $config, ResultsObject $result) { $rows = $result->offsetGetByPath('[data]'); $rows = is_array($rows) ? $rows : []; $rows = array_map(function (ResultRecordInterface $record) { if ($rootEntity = $record->getRootEntity()) { return $rootEntity; } $entityName = $record->getValue('entityName'); $recordId = $record->getValue('recordId'); if ($entityName && $recordId) { return new ResultItem($this->em, $entityName, $recordId, null, null, null, $this->mapper->getEntityConfig($entityName)); } return null; }, $rows); $entities = $this->resultFormatter->getResultEntities($rows); $resultRows = []; /** @var ResultItem $item */ foreach ($rows as $item) { $entityName = $item->getEntityName(); $entityId = $item->getRecordId(); if (!isset($entities[$entityName][$entityId])) { continue; } $entity = $entities[$entityName][$entityId]; $this->dispatcher->dispatch(PrepareResultItemEvent::EVENT_NAME, new PrepareResultItemEvent($item, $entity)); $resultRows[] = new ResultRecord(['entity' => $entity, 'indexer_item' => $item]); } // set results $result->offsetSet('data', $resultRows); }
/** * {@inheritDoc} */ public function visitResult(DatagridConfiguration $config, ResultsObject $result) { $result->offsetSetByPath('[options][hideToolbar]', false); $minToolbarRecords = (int) $config->offsetGetByPath(self::TURN_OFF_TOOLBAR_RECORDS_NUMBER_PATH); if ($minToolbarRecords > 0 && count($result['data']) < $minToolbarRecords) { $result->offsetSetByPath('[options][hideToolbar]', true); } }
/** * {@inheritdoc} * * Gets stored SQL and parameters prepared by * Oro\Bundle\DataGridBundle\EventListener\StoreSqlListener * and puts them into metadata of ResultsObject */ public function visitResult(DatagridConfiguration $config, ResultsObject $result) { $value = $config->offsetGetByPath(self::STORED_SQL_PATH); if ($value) { $result->offsetAddToArray('metadata', [self::DISPLAY_SQL_QUERY => true]); $result->offsetAddToArrayByPath(self::STORED_SQL_PATH, $value); } }
public function testVisitResult() { $result = ResultsObject::create([]); $this->extension->visitResult(DatagridConfiguration::create([]), $result); $this->assertArrayHasKey('metadata', $result); $this->assertInternalType('array', $result['metadata']); }
/** * {@inheritDoc} */ public function visitResult(DatagridConfiguration $config, ResultsObject $result) { $rows = (array) $result->offsetGetOr('data', []); $columns = $config->offsetGetOr(Configuration::COLUMNS_KEY, []); $properties = $config->offsetGetOr(Configuration::PROPERTIES_KEY, []); $toProcess = array_merge($columns, $properties); foreach ($rows as $key => $row) { $currentRow = []; foreach ($toProcess as $name => $config) { $config = PropertyConfiguration::createNamed($name, $config); $property = $this->getPropertyObject($config); $currentRow[$name] = $property->getValue($row); } $rows[$key] = $currentRow; } $result->offsetSet('data', $rows); }
/** * {@inheritDoc} */ public function getData() { /** @var array $rows */ $rows = $this->getAcceptedDatasource()->getResults(); $result = ResultsObject::create(['data' => $rows]); $this->acceptor->acceptResult($result); return $result; }
/** * Test method acceptResult */ public function testAcceptResults() { $result = ResultsObject::create([]); $extMock = $this->getMockForAbstractClass('Oro\\Bundle\\DataGridBundle\\Extension\\ExtensionVisitorInterface'); $extMock->expects($this->once())->method('visitResult')->with($this->config, $result); $this->acceptor->addExtension($extMock); $this->acceptor->acceptResult($result); }
/** * {@inheritDoc} */ public function visitResult(DatagridConfiguration $config, ResultsObject $result) { $result->offsetAddToArray('options', [self::TOTAL_PARAM => $this->pager->getNbResults()]); }
/** * @param DatagridConfiguration $config * @param ResultsObject $result * @return mixed|void */ public function visitResult(DatagridConfiguration $config, ResultsObject $result) { $result->offsetSetByPath(PagerInterface::TOTAL_PATH_PARAM, $config->offsetGetByPath(CombinedAuditDatasource::PATH_PAGER_ORIGINAL_TOTALS . '[0]')); }
/** * @return ResultsObject */ protected function getTestResult() { return ResultsObject::create(['data' => [['id' => 1, 'name' => 'test1', 'wonCount' => 10], ['id' => 2, 'name' => 'test2', 'wonCount' => 4], ['id' => 3, 'name' => 'test3', 'wonCount' => 2], ['id' => 4, 'name' => 'test4', 'wonCount' => 6], ['id' => 5, 'name' => 'test5', 'wonCount' => 10], ['id' => 6, 'name' => 'test6', 'wonCount' => 9], ['id' => 7, 'name' => 'test7', 'wonCount' => 5], ['id' => 8, 'name' => 'test8', 'wonCount' => 4], ['id' => 9, 'name' => 'test9', 'wonCount' => 3], ['id' => 10, 'name' => 'test10', 'wonCount' => 2]], 'options' => ['totalRecords' => 14]]); }
/** * Empty implementation should be callable */ public function testVisitResult() { $result = ResultsObject::create([]); $config = DatagridConfiguration::create([]); $this->extension->visitResult($config, $result); }
/** * {@inheritDoc} */ public function visitResult(DatagridConfiguration $config, ResultsObject $result) { $result->offsetSetByPath(PagerInterface::TOTAL_PATH_PARAM, $this->pager->getNbResults()); }
/** * {@inheritdoc} */ public function visitResult(DatagridConfiguration $config, ResultsObject $result) { $rows = (array) $result->offsetGetOr('data', []); $idField = 'id'; $tags = $this->getTagsForEntityClass($this->getEntityClassName($config), $this->extractEntityIds($rows, $idField)); $this->addTagsToData($rows, $tags, $idField, self::COLUMN_NAME); }
/** * {@inheritdoc} */ public function visitResult(DatagridConfiguration $config, ResultsObject $result) { $identifiers = $this->getTagsColumns($config); $rows = (array) $result->offsetGetOr('data', []); $entitiesTags = []; foreach ($identifiers as $entityClass => $idAlias) { $entitiesTags[$entityClass] = $this->getTagsForEntityClass($entityClass, $this->extractEntityIds($rows, $idAlias)); } foreach ($entitiesTags as $entityClass => $entityTags) { $idAlias = $identifiers[$entityClass]; $this->addTagsToData($rows, $entityTags, $idAlias, $this->buildTagColumnId($idAlias, $entityClass)); } }
/** * {@inheritDoc} */ public function visitResult(DatagridConfiguration $config, ResultsObject $result) { $result->offsetAddToArray('metadata', [static::METADATA_ACTION_KEY => $this->getActionsMetadata($config)]); }