src/Controller/DashboardController.php line 24

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Resource;
  4. use App\Repository\BookingRepository;
  5. use App\Repository\ResourceRepository;
  6. use Doctrine\Common\Collections\ArrayCollection;
  7. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\Routing\Annotation\Route;
  10. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;
  11. /**
  12.  * @Security("is_granted('ROLE_USER')")
  13.  */
  14. class DashboardController extends AbstractController
  15. {
  16.     /**
  17.      * @Route("/dashboard", name="dashboard")
  18.      * @Security("is_granted('ROLE_EVENT_USER') or is_granted('ROLE_RESOURCE_USER') ")
  19.      */
  20.     public function index(BookingRepository $bookingRepositoryResourceRepository $resourceRepositoryRequest $request)
  21.     {
  22.         if ($request->cookies->has('ui_dash_sorting-ui')) {
  23.             switch ($request->cookies->get('ui_dash_sorting-ui')) {
  24.                 case 'start_desc':
  25.                     $order = ['start''DESC'];
  26.                     break;
  27.                 case 'cr_desc':
  28.                     $order = ['createdAt''DESC'];
  29.                     break;
  30.                 case 'cr_asc':
  31.                     $order = ['createdAt','ASC'];
  32.                     break;
  33.                 case 'start_asc':
  34.                 default:
  35.                     $order = ['start','ASC'];
  36.             }
  37.         } else {
  38.             $order = ['start','ASC'];
  39.         }
  40.         if ($request->cookies->has('ui_dash_filtering-ui')){
  41.             $resource $resourceRepository->find($request->cookies->get('ui_dash_filtering-ui'));
  42.         } else {
  43.             $resource null;
  44.         }
  45.         $filtering = [];
  46.         if ($request->cookies->has('ui_dash_filtering-ui-user') &&
  47.             $request->cookies->get('ui_dash_filtering-ui-user')){
  48.             $filtering['owner'] = 1;
  49.         } else {
  50.             $filtering['owner'] = 0;
  51.         }
  52.         if ($request->cookies->has('ui_dash_filtering-ui-state') &&
  53.             $request->cookies->get('ui_dash_filtering-ui-state')
  54.         ){
  55.             $filtering['state'] = 1;
  56.             $processingStates = ['processing','rejected','waiting'];
  57.             $completedStates = ['cancelled','approved','expired'];
  58.         } else {
  59.             $filtering['state'] = 0;
  60.             $processingStates = ['processing','waiting'];
  61.             $completedStates = ['approved'];
  62.         }
  63.         if ($resource) {
  64.             $acResource = new ArrayCollection([$resource]);
  65.         } else {
  66.             $acResource null;
  67.         }
  68.         $enquiry $bookingRepository->findUpcomingByState(
  69.             ['enquiry'],
  70.             null,
  71.             ($filtering['owner'] ? $this->getUser() : null ),
  72.             $acResource,
  73.             100,
  74.             $order
  75.         );
  76.         $processing $bookingRepository->findUpcomingByState(
  77.             $processingStates,
  78.             null,
  79.             ($filtering['owner'] ? $this->getUser() : null ),
  80.             $acResource,
  81.             100,
  82.             $order
  83.         );
  84.         $completed $bookingRepository->findUpcomingByState(
  85.             $completedStates,
  86.             null,
  87.             ($filtering['owner'] ? $this->getUser() : null ),
  88.             $acResource,
  89.             100,
  90.             $order
  91.         );
  92.         $resources $resourceRepository->findAll();
  93.         return $this->render('dashboard/index.html.twig', [
  94.             'enquiry'=>$enquiry,
  95.             'processing'=>$processing,
  96.             'completed'=>$completed,
  97.             'resources'=>$resources,
  98.             'resource'=>$resource,
  99.             'filter' => $filtering,
  100.             'controller_name' => 'DashboardController',
  101.         ]);
  102.     }
  103.     /**
  104.      * @Route("/diary", name="diary")
  105.      * @Route("/diary/{id}", name="diary_res")
  106.      * @Security("is_granted('ROLE_EVENT_USER') or is_granted('ROLE_RESOURCE_USER') ")
  107.      */
  108.     public function diary(Request $requestResource $resource)
  109.     {
  110.         return $this->render('resource/show.html.twig', [
  111.             'resource' => $resource,
  112.         ]);
  113.     }
  114.     /**
  115.      * @Route("/ediary", name="ediary")
  116.      * @Security("is_granted('ROLE_EVENT_USER') or is_granted('ROLE_RESOURCE_USER') ")
  117.      */
  118.     public function eventsDiary(Request $request)
  119.     {
  120.         return $this->render('event/calendar.html.twig', [
  121.         ]);
  122.     }
  123. }