src/Controller/TypeConnectorController.php line 22

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\TypeConnector;
  4. use App\Entity\InterfaceGeneric;
  5. use App\Entity\EquipmentGeneric;
  6. use Symfony\Component\Routing\Annotation\Route;
  7. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;
  10. use Symfony\Contracts\Translation\TranslatorInterface;
  11. use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
  12. use App\Form\TypeConnectorForm;
  13. class TypeConnectorController  extends AbstractController
  14. {
  15.     /**
  16.      * @Route("/settings/types/connector", name="type_connector")
  17.      */
  18.     public function indexAction(Request $requestTranslatorInterface $translator)
  19.   {
  20.         $user $this->getUser();
  21.         $typeConnector = new TypeConnector();
  22.         $errors = [];
  23.         $form $this->createForm(TypeConnectorForm::class, $typeConnector);
  24.         $form->handleRequest($request);
  25.         if ($form->isSubmitted() && $user->hasRole("ROLE_SUPER_ADMIN")) {
  26.             if($form->isValid()){
  27.                 $typeConnector $form->getData();
  28.                 $em $this->getDoctrine()->getManager();
  29.                 $em->persist($typeConnector);
  30.                 $em->flush();
  31.                 return $this->redirectToRoute('type_connector');
  32.             }
  33.             $validator $this->get('validator');
  34.             $errors $validator->validate($typeConnector);
  35.         }
  36.         $list $this->getDoctrine()->getRepository(TypeConnector::class)->findAll();
  37.         return $this->render('types/default.html.twig', [
  38.             'action' => 'insert',
  39.             'page_title' => $translator->trans('Connector Type'),
  40.             'box_title' => '<i class="fa fa-plus-circle fa-fw"></i> '.$translator->trans('Add new'),
  41.             'path_default' => 'type_connector',
  42.             'path_update' => 'type_connector_update',
  43.             'path_delete' => 'type_connector_delete',
  44.             'path_show_module' => 'type_connector_show_module',
  45.             'path_show_equipement' => 'type_connector_show_equipement',
  46.             'form' => $form->createView(),
  47.             'list' => $list,
  48.             'errors' => $errors
  49.         ]);
  50.     }
  51.     /**
  52.      * @Route("/settings/types/connector/edit/{id}", name="type_connector_update")
  53.      */
  54.     public function updateAction(Request $requestTypeConnector $typeConnectorTranslatorInterface $translator)
  55.   {
  56.         $user $this->getUser();
  57.         $errors = [];
  58.         $form $this->createForm(TypeConnectorForm::class, $typeConnector);
  59.         $form->handleRequest($request);
  60.         if ($form->isSubmitted() && $user->hasRole("ROLE_SUPER_ADMIN")) {
  61.             if($form->isValid()){
  62.                 $this->getDoctrine()->getManager()->flush();
  63.                 return $this->redirectToRoute('type_connector');
  64.             }
  65.             $validator $this->get('validator');
  66.             $errors $validator->validate($typeConnector);
  67.             $this->getDoctrine()->getManager()->detach($typeConnector);
  68.         }
  69.         $list $this->getDoctrine()->getRepository(TypeConnector::class)->findAll();
  70.         return $this->render('types/default.html.twig', [
  71.             'action' => 'update',
  72.             'page_title' => $translator->trans('Connector Type'),
  73.             'box_title' => '<i class="fa fa-edit fa-fw"></i> '.$translator->trans('Edit'),
  74.             'path_default' => 'type_connector',
  75.             'path_update' => 'type_connector_update',
  76.             'path_delete' => 'type_connector_delete',
  77.             'form' => $form->createView(),
  78.             'list' => $list,
  79.             'errors' => $errors
  80.         ]);
  81.     }
  82.     /**
  83.      * @IsGranted("ROLE_SUPER_ADMIN")
  84.      * @Route("/settings/types/connector/delete/{id}", name="type_connector_delete")
  85.      */
  86.     public function deleteAction($idTranslatorInterface $translator)
  87.   {
  88.         $em $this->getDoctrine()->getManager();
  89.         $typeConnector $em->getRepository(TypeConnector::class)->find($id);
  90.         $msgError null;
  91.         try {
  92.           $em->remove($typeConnector);
  93.           $em->flush();
  94.         } catch (\Exception $e) {
  95.           $msgError $translator->trans('deleteError');
  96.         }
  97.         return $this->redirectToRoute('type_connector', array("msgError"=>$msgError));
  98.     }
  99.     /**
  100.      * @Route("/settings/types/connector/show_module/{id}", name="type_connector_show_module")
  101.      */
  102.     public function showModuleAction($idTranslatorInterface $translator)
  103.   {
  104.         $em $this->getDoctrine()->getManager();
  105.         $eqIds $em->getRepository(TypeConnector::class)->findModulesGenerique($id);
  106.         $eqPortExterneIds $em->getRepository(TypeConnector::class)->findModulesGeneriquePortExterne($id);
  107.         $list = array();
  108.         for ($i=0$i count($eqIds); $i++) {
  109.             $list[] = $em->getRepository(EquipmentGeneric::class)->find($eqIds[$i]['id']);
  110.         }
  111.         for ($i=0$i count($eqPortExterneIds); $i++) {
  112.             $list[] = $em->getRepository(EquipmentGeneric::class)->find($eqPortExterneIds[$i]['id']);
  113.         }
  114.         return $this->render('types/module_list.html.twig', [
  115.             'page_title' => $translator->trans('Liste des modules génériques'),
  116.             'box_title' => $translator->trans('Liste des modules génériques'),
  117.             'path_retour' => 'type_connector',
  118.             'path_update' => 'equipment_generic_module_update',
  119.             'path_delete' => 'equipment_generic_delete',
  120.             'path_show_equipement' => 'module_show_equipement_specifique',
  121.             'list' => $list
  122.         ]);
  123.     }
  124.     /**
  125.      * @Route("/settings/types/connector/show_equipement/{id}", name="type_connector_show_equipement")
  126.      */
  127.     public function showEquipementAction($idTranslatorInterface $translator)
  128.   {
  129.         $em $this->getDoctrine()->getManager();
  130.         $eqIds $em->getRepository(TypeConnector::class)->findEquipementsGenerique($id);
  131.         $eqPortExterneIds $em->getRepository(TypeConnector::class)->findEquipementsGeneriquePortExterne($id);
  132.         $list = array();
  133.         for ($i=0$i count($eqIds); $i++) {
  134.             $list[] = $em->getRepository(EquipmentGeneric::class)->find($eqIds[$i]['id']);
  135.         }
  136.         for ($i=0$i count($eqPortExterneIds); $i++) {
  137.             $list[] = $em->getRepository(EquipmentGeneric::class)->find($eqPortExterneIds[$i]['id']);
  138.         }
  139.         return $this->render('types/equipement_list.html.twig', [
  140.             'page_title' => $translator->trans('Liste des équipements génériques'),
  141.             'box_title' => $translator->trans('Liste des équipements génériques'),
  142.             'path_retour' => 'type_connector',
  143.             'path_update' => 'equipment_generic_update',
  144.             'path_delete' => 'equipment_generic_delete',
  145.             'list' => $list
  146.         ]);
  147.     }
  148. }