/** * Get Grouped Entities by Activity Entity * * @param object $entity * @param string $widgetId * @param array $filterMetadata * * @return array */ public function getGroupedEntities($entity, $targetActivityClass, $targetActivityId, $widgetId, $filterMetadata) { $results = []; $entityProvider = $this->chainProvider->getProviderForEntity(ClassUtils::getRealClass($entity)); if ($this->isGroupingApplicable($entityProvider)) { $groupedActivities = $entityProvider->getGroupedEntities($entity); $activityResults = $this->getEntityViewModels($groupedActivities, ['class' => $targetActivityClass, 'id' => $targetActivityId]); $results = ['entityId' => $entity->getId(), 'ignoreHead' => true, 'widgetId' => $widgetId, 'activityListData' => json_encode(['count' => count($activityResults), 'data' => $activityResults]), 'commentOptions' => ['listTemplate' => '#template-activity-item-comment', 'canCreate' => true], 'activityListOptions' => ['configuration' => $this->chainProvider->getActivityListOption($this->config), 'template' => '#template-activity-list', 'itemTemplate' => '#template-activity-item', 'urls' => [], 'loadingContainerSelector' => '.activity-list.sub-list', 'dateRangeFilterMetadata' => $filterMetadata, 'routes' => [], 'pager' => false]]; } return $results; }
public function testGetActivityListOption() { $entityConfigProvider = $this->getMockBuilder('Oro\\Bundle\\EntityConfigBundle\\Provider\\ConfigProvider')->disableOriginalConstructor()->getMock(); $configId = new EntityConfigId('entity', 'Test\\Entity'); $entityConfig = new Config($configId); $userConfig = $this->getMockBuilder('Oro\\Bundle\\ConfigBundle\\Config\\ConfigManager')->disableOriginalConstructor()->getMock(); $entityConfig->set('icon', 'test_icon'); $entityConfig->set('label', 'test_label'); $entityConfigProvider->expects($this->once())->method('getConfig')->willReturn($entityConfig); $this->translator->expects($this->once())->method('trans')->with('test_label')->willReturn('test_label'); $this->routeHelper->expects($this->once())->method('getUrlSafeClassName')->willReturn('Test_Entity'); $this->configManager->expects($this->once())->method('getProvider')->willReturn($entityConfigProvider); $result = $this->provider->getActivityListOption($userConfig); $this->assertEquals(['Test_Entity' => ['icon' => 'test_icon', 'label' => 'test_label', 'template' => 'test_template.js.twig', 'routes' => ['delete' => 'test_delete_route'], 'has_comments' => true]], $result); }