private function populateDashboard(DashboardModel $dashboard, ObjectManager $manager)
 {
     $user = $this->getAdminUser($manager);
     $widgetConfiguration = ['ticket_timeline' => [0, 0], 'time_of_response_widget' => [1, 0], 'tickets_by_channels_widget' => [0, 1], 'tickets_by_branches_widget' => [1, 2], 'tickets_by_priority_widget' => [0, 2]];
     foreach ($widgetConfiguration as $name => $position) {
         $widget = new Widget();
         $widget->setDashboard($dashboard->getEntity());
         $widget->setLayoutPosition($position);
         $widget->setName($name);
         $state = new WidgetState();
         $state->setWidget($widget);
         $state->setOwner($user);
         $state->setExpanded(true);
         $manager->persist($widget);
         $manager->persist($state);
     }
 }
예제 #2
0
 /**
  * @param DashboardModel $dashboardModel
  * @return mixed
  */
 protected function update(DashboardModel $dashboardModel)
 {
     $form = $this->createForm($this->container->get('oro_dashboard.form.type.edit'), $dashboardModel->getEntity(), array('create_new' => !$dashboardModel->getId()));
     $request = $this->getRequest();
     if ($request->isMethod('POST')) {
         if ($form->submit($request)->isValid()) {
             $this->getDashboardManager()->save($dashboardModel, true);
             $this->get('session')->getFlashBag()->add('success', $this->get('translator')->trans('oro.dashboard.saved_message'));
             return $this->get('oro_ui.router')->redirectAfterSave(array('route' => 'oro_dashboard_update', 'parameters' => array('id' => $dashboardModel->getId(), '_enableContentProviders' => 'mainMenu')), array('route' => 'oro_dashboard_view', 'parameters' => array('id' => $dashboardModel->getId(), 'change_dashboard' => true, '_enableContentProviders' => 'mainMenu')));
         }
     }
     return array('entity' => $dashboardModel, 'form' => $form->createView());
 }
예제 #3
0
 public function testGetEntity()
 {
     $this->assertEquals($this->dashboardEntity, $this->dashboardModel->getEntity());
 }
예제 #4
0
 /**
  * Set current dashboard as active for passed user
  *
  * @param DashboardModel $dashboard
  * @param User           $user
  * @param bool           $flush
  *
  * @return bool
  */
 public function setUserActiveDashboard(DashboardModel $dashboard, User $user, $flush = false)
 {
     /** @var OrganizationContextTokenInterface $token */
     $token = $this->securityContext->getToken();
     $organization = $token->getOrganizationContext();
     $activeDashboard = $this->entityManager->getRepository('OroDashboardBundle:ActiveDashboard')->findOneBy(array('user' => $user, 'organization' => $organization));
     if (!$activeDashboard) {
         $activeDashboard = new ActiveDashboard();
         $activeDashboard->setUser($user);
         $activeDashboard->setOrganization($organization);
         $this->entityManager->persist($activeDashboard);
     }
     $entity = $dashboard->getEntity();
     $activeDashboard->setDashboard($entity);
     if ($flush) {
         $this->entityManager->flush($activeDashboard);
     }
 }