/** * @param ConfigureMenuEvent $event */ public function onNavigationConfigure(ConfigureMenuEvent $event) { $dashboardTab = $event->getMenu()->getChild('dashboard_tab'); if (!$dashboardTab || !$this->securityFacade->hasLoggedUser()) { return; } $dashboards = $this->manager->findAllowedDashboards(); if (count($dashboards) > 0) { foreach ($dashboards as $dashboard) { $dashboardId = $dashboard->getId(); $dashboardLabel = $dashboard->getLabel(); $dashboardLabel = strlen($dashboardLabel) > 50 ? substr($dashboardLabel, 0, 50) . '...' : $dashboardLabel; $options = array('label' => $dashboardLabel, 'route' => 'oro_dashboard_view', 'extras' => array('position' => 1), 'routeParameters' => array('id' => $dashboardId, 'change_dashboard' => true)); $dashboardTab->addChild($dashboardId . '_dashboard_menu_item', $options)->setAttribute('data-menu', $dashboardId); } $dashboardTab->addChild('divider-' . rand(1, 99999))->setLabel('')->setAttribute('class', 'divider menu-divider')->setExtra('position', 2); } }
public function testFindAllowedDashboards() { $permission = 'EDIT'; $expectedEntities = array($this->getMock('Oro\\Bundle\\DashboardBundle\\Entity\\Dashboard')); $expectedModels = array($this->getMockBuilder('Oro\\Bundle\\DashboardBundle\\Model\\DashboardModel')->disableOriginalConstructor()->getMock()); $queryBuilder = $this->getMockBuilder('Doctrine\\ORM\\QueryBuilder')->disableOriginalConstructor()->getMock(); $query = $this->getMockBuilder('Doctrine\\ORM\\AbstractQuery')->disableOriginalConstructor()->setMethods(array('execute'))->getMockForAbstractClass(); $query->expects($this->once())->method('execute')->will($this->returnValue($expectedEntities)); $this->dashboardRepository->expects($this->once())->method('createQueryBuilder')->with('dashboard')->will($this->returnValue($queryBuilder)); $this->aclHelper->expects($this->once())->method('apply')->with($queryBuilder, $permission)->will($this->returnValue($query)); $this->factory->expects($this->once())->method('createDashboardModel')->with($expectedEntities[0])->will($this->returnValue($expectedModels[0])); $this->assertEquals($expectedModels, $this->manager->findAllowedDashboards($permission)); }
/** * @return Dashboard */ protected function getChoices() { return array_map(function (DashboardModel $dashboardModel) { return $dashboardModel->getEntity(); }, $this->manager->findAllowedDashboards()); }