src/Controller/FormController.php line 28

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Entity;
  4. use App\Entity\Form;
  5. use App\Entity\FormUserAnswers;
  6. use App\Repository\AnimalRepository;
  7. use App\Repository\CategoryRepository;
  8. use App\Repository\FormRepository;
  9. use App\Repository\MapObjectRepository;
  10. use App\Repository\MapObjectTypeRepository;
  11. use App\Repository\UserEntityRepository;
  12. use App\Serialization\BigListSerialization;
  13. use App\Serialization\FormSerialization;
  14. use Nzo\UrlEncryptorBundle\Annotations\ParamDecryptor;
  15. use Nzo\UrlEncryptorBundle\Encryptor\Encryptor;
  16. use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
  17. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  18. use Symfony\Component\HttpFoundation\Request;
  19. use Symfony\Component\Routing\Annotation\Route;
  20. use Symfony\Component\HttpFoundation\Response;
  21. class FormController extends AbstractController
  22. {
  23.     #[Route(path'booking'name'booking_index')]
  24.     public function index(): Response
  25.     {
  26.         return $this->render('form/index.html.twig');
  27.     }
  28.     #[Route(path'forms'name'forms_index')]
  29.     public function indexForms(FormRepository $formRepository): Response
  30.     {
  31.         $user $this->getUser();
  32.         $forms $formRepository->findAllByUser($user);
  33.         // TODO: SuperAdmin
  34.         $undefined = [];
  35.         $categories = [];
  36.         foreach ($forms as $form) {
  37.             if ($form->getCategory() == null) {
  38.                 $undefined[] = $form;
  39.             } else {
  40.                 $category $form->getCategory();
  41.                 if (!array_key_exists($category->getId(), $categories)) {
  42.                     $categories[$category->getId()] = [];
  43.                     $categories[$category->getId()]["name"] = $category->getName();
  44.                     $categories[$category->getId()]["forms"] = [];
  45.                 }
  46.                 $categories[$category->getId()]["forms"][] = $form;
  47.             }
  48.         }
  49.         $results = [];
  50.         foreach ($categories as $categoryTab) {
  51.             $results[] = $categoryTab;
  52.         }
  53.         //sort categories
  54.         usort($results, function ($a$b) {
  55.             return $a['name'] <=> $b['name'];
  56.         });
  57.         $results[] = [
  58.             "name" => "Undefined",
  59.             "forms" => $undefined
  60.         ];
  61.         // Recover all forms for user
  62.         return $this->render('form/indexForms.html.twig', [
  63.             'forms' => $results
  64.         ]);
  65.     }
  66.     #[Route(path'form/{id}'name'form_detail')]
  67.     #[ParamDecryptor(["id"])]
  68.     public function formDetail(Form $formRequest $requestMapObjectRepository $mapObjectRepositoryEncryptor $encryptor): Response
  69.     {
  70.         $mapObject $request->query->get('mapObject'null);
  71.         if($mapObject){
  72.             $mapObject $mapObjectRepository->findOneBy(array('id' => $encryptor->decrypt($mapObject)));
  73.         }
  74.         return $this->render('form/detail.html.twig', [
  75.             'form' => $form,
  76.             'mapObject' => $mapObject $mapObject->getId() : null
  77.         ]);
  78.     }
  79. }