src/Controller/TypeCableController.php line 20

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\TypeCable;
  4. use Symfony\Component\Routing\Annotation\Route;
  5. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  6. use Symfony\Component\HttpFoundation\Request;
  7. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;
  8. use Symfony\Contracts\Translation\TranslatorInterface;
  9. use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
  10. use App\Form\TypeCableForm;
  11. class TypeCableController  extends AbstractController
  12. {
  13.     /**
  14.      * @Route("/settings/types/cable", name="type_cable")
  15.      */
  16.     public function indexAction(Request $requestTranslatorInterface $translator)
  17.   {
  18.         $user $this->getUser();
  19.         $typeCable = new TypeCable();
  20.         $errors = [];
  21.         $form $this->createForm(TypeCableForm::class, $typeCable);
  22.         $form->handleRequest($request);
  23.         if ($form->isSubmitted() && $user->hasRole("ROLE_SUPER_ADMIN")) {
  24.             if($form->isValid()){
  25.                 $typeCable $form->getData();
  26.                 $em $this->getDoctrine()->getManager();
  27.                 $em->persist($typeCable);
  28.                 $em->flush();
  29.                 return $this->redirectToRoute('type_cable');
  30.             }
  31.             $validator $this->get('validator');
  32.             $errors $validator->validate($typeCable);
  33.         }
  34.         $list $this->getDoctrine()->getRepository(TypeCable::class)->findAll();
  35.         return $this->render('types/cable.html.twig', [
  36.             'action' => 'insert',
  37.             'page_title' => $translator->trans('Cable Type'),
  38.             'box_title' => '<i class="fa fa-plus-circle fa-fw"></i> '.$translator->trans('Add new'),
  39.             'path_default' => 'type_cable',
  40.             'path_update' => 'type_cable_update',
  41.             'path_delete' => 'type_cable_delete',
  42.             'form' => $form->createView(),
  43.             'list' => $list,
  44.             'errors' => $errors
  45.         ]);
  46.     }
  47.     /**
  48.      * @Route("/settings/types/cable/edit/{id}", name="type_cable_update")
  49.      */
  50.     public function updateAction(Request $requestTypeCable $typeCable$idTranslatorInterface $translator)
  51.   {
  52.         $em $this->getDoctrine()->getManager();
  53.         $cable $em->getRepository(TypeCable::class)->find($id);
  54.         $color $cable->getColor();
  55.         $user $this->getUser();
  56.         $errors = [];
  57.         $form $this->createForm(TypeCableForm::class, $typeCable);
  58.         $form->handleRequest($request);
  59.         if ($form->isSubmitted() && $user->hasRole("ROLE_SUPER_ADMIN")) {
  60.             if($form->isValid()){
  61.                 $this->getDoctrine()->getManager()->flush();
  62.                 return $this->redirectToRoute('type_cable');
  63.             }
  64.             $validator $this->get('validator');
  65.             $errors $validator->validate($typeCable);
  66.             $this->getDoctrine()->getManager()->detach($typeCable);
  67.         }
  68.         $list $this->getDoctrine()->getRepository(TypeCable::class)->findAll();
  69.         return $this->render('types/cable.html.twig', [
  70.             'action' => 'update',
  71.             'page_title' => $translator->trans('Cable Type'),
  72.             'box_title' => '<i class="fa fa-edit fa-fw"></i> '.$translator->trans('Edit'),
  73.             'path_default' => 'type_cable',
  74.             'path_update' => 'type_cable_update',
  75.             'path_delete' => 'type_cable_delete',
  76.             'form' => $form->createView(),
  77.             'list' => $list,
  78.             'color' => $color,
  79.             'errors' => $errors
  80.         ]);
  81.     }
  82.     /**
  83.      * @IsGranted("ROLE_SUPER_ADMIN")
  84.      * @Route("/settings/types/cable/delete/{id}", name="type_cable_delete")
  85.      */
  86.     public function deleteAction($idTranslatorInterface $translator)
  87.   {
  88.         $em $this->getDoctrine()->getManager();
  89.         $typeCable $em->getRepository(TypeCable::class)->find($id);
  90.         $msgError null;
  91.         try {
  92.           $em->remove($typeCable);
  93.           $em->flush();
  94.         } catch (\Exception $e) {
  95.           $msgError $translator->trans('deleteError');
  96.         }
  97.         return $this->redirectToRoute('type_cable', array("msgError"=>$msgError));
  98.     }
  99. }