src/Controller/Administration/CspTypeController.php line 98

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Controller\Administration;
  4. use Symfony\Component\HttpFoundation\{
  5.     Request,
  6.     Response
  7. };
  8. use Symfony\Component\Routing\Annotation\Route;
  9. use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
  10. use App\Common\Controllers\CrmCrudAbstractController;
  11. use App\Form\Type\CspTypeType;
  12. use App\Entity\{CsptypeCsp};
  13. use App\Services\Administration\CspTypeService;
  14. use Doctrine\DBAL\DBALException;
  15. class CspTypeController extends CrmCrudAbstractController
  16. {
  17.     private const TEMPLATE_FOLDER 'administration/csp_type/';
  18.     /**
  19.      * @see CrmAbstractController
  20.      */
  21.     protected function initModuleDetails(): array
  22.     {
  23.         return [
  24.             'entityClassName' => Csptype::class,
  25.             'formClassName' => CspTypeType::class,
  26.             'moduleService' => CspTypeService::class,
  27.             'modulePrefix' => 'administration_csptype',
  28.             'moduleTemplate' => self::TEMPLATE_FOLDER,
  29.             'hasPagin' => false,
  30.             'defaultSort' => ['field' => 'ct.name''op' => 'ASC'],
  31.             'hasFilter' => false,
  32.         ];
  33.     }
  34.     #[IsGranted("ROLE_ADMIN")]
  35.     #[Route('/administration/csp-type'name'administration_csptype_management_index'options: ['expose' => true])]
  36.     public function index(Request $requestCspTypeService $cspTypeService): Response
  37.     {
  38.         return parent::getList($requestparent::MODE_INDEX$cspTypeService);
  39.     }
  40.     #[IsGranted("ROLE_ADMIN")]
  41.     #[Route('/administration/csp-type/add'name'administration_csptype_management_add'options: ['expose' => true])]
  42.     #[Route('/administration/csp-type/edit/{id}'name'administration_csptype_management_edit'options: ['expose' => true])]
  43.     public function add(Request $requestCspTypeService $cspTypeService, ?Csptype $csptype): Response
  44.     {
  45.         try {
  46.             $response parent::addEntity(
  47.                 $request,
  48.                 $csptype
  49.             );
  50.             if ($request->isMethod('POST')) {
  51.                 $this->addFlash('success''Done successfully !');
  52.                 return $this->redirectToRoute('administration_csptype_management_index');
  53.             }
  54.         } catch (\Exception $exception) {
  55.             $this->addFlash('error'$exception->getMessage());
  56.             
  57.             if ($request->isMethod('POST')) {
  58.                 $route = ($csptype)
  59.                     ? $this->generateUrl('administration_csptype_management_edit', ['id' => $csptype->getId(),])
  60.                     : $this->generateUrl('administration_csptype_management_add')
  61.                 ;
  62.                 return $this->redirect($route);
  63.             }
  64.             return $this->redirectToRoute('administration_csptype_management_index');
  65.         }
  66.         return $response;
  67.     }
  68.     #[IsGranted("ROLE_ADMIN")]
  69.     #[Route('/administration/csp-type/delete/{id}'name'administration_csptype_management_delete'options: ['expose' => true])]
  70.     public function delete(CspTypeService $cspTypeServiceCsptype $csptype): Response
  71.     {
  72.         try {
  73.             $cspTypeService->removeCspTypeFromDatasetCriteria($csptype);
  74.             parent::deleteEntity($csptype);
  75.             $this->addFlash('success''Done successfully !');
  76.         } catch (DBALException $exception) {
  77.             $this->addFlash('error'$exception->getMessage());
  78.         }
  79.         return $this->redirectToRoute('administration_csptype_management_index');
  80.     }
  81.     #[Route('/administration/csp/{id}/csptpes/ddl'name'administration_csp_csptypes_ddl'options: ['expose' => true])]
  82.     public function cspCountriesDdl(Csp $csp): Response
  83.     {
  84.         return $this->render(
  85.             'administration/csp/csp_csptypes_ddl.html.twig', [
  86.                 'csptypes' => $csp->getCsptype()->toArray(),
  87.             ]
  88.         );
  89.     }
  90. }