src/Controller/OpportunitiesTypesController.php line 37

  1. <?php
  2. namespace App\Controller;
  3. use Symfony\Component\Routing\Annotation\Method;
  4. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  5. use Symfony\Component\Routing\Annotation\Route;
  6. use Symfony\Component\Routing\Annotation\Security;
  7. use Symfony\Component\HttpFoundation\Request;
  8. use Symfony\Component\HttpFoundation\Response;
  9. use Doctrine\ORM\EntityManagerInterface;
  10. use Doctrine\Persistence\ManagerRegistry;
  11. use App\Entity\OpportunitiesTypes;
  12. use App\Form\OpportunitiesTypesType;
  13. use App\Repository\OpportunitiesTypesRepository;
  14. use OlaSoft\Common;
  15. /**
  16.  * @Route("/os-admin/opportunitiestypes", name="opportunitiestypes-")
  17.  */
  18. class OpportunitiesTypesController extends AbstractController
  19. {
  20.     public function __construct(ManagerRegistry $doctrine){
  21.         $this->doctrine =  $doctrine;
  22.     }
  23.     private $doctrine;
  24.     public function getDoctrine()
  25.     {
  26.         return $this->doctrine;
  27.     }
  28.     /**
  29.      * @Route("/",name="admin")
  30.      */
  31.     public function indexAction(Request $request)
  32.     {
  33.         $em $this->getDoctrine()->getManager();
  34.         $list $em->getRepository(OpportunitiesTypes::class)->findBy(array(),array('id'=>'DESC'));
  35.         $ajax $request->isXmlHttpRequest();
  36.         $response $this->render('Admin\index.html.twig',[
  37.             'list'=>$list,
  38.             'ajax'=>$ajax,
  39.             'noResearch'=>true,
  40.             "title"=> "Gestion des opportunités",
  41.             "subtitle"=> "Liste des opportunités"
  42.         ]);
  43.         return $ajax ?
  44.             new Response(\json_encode([
  45.                 'content'=>$response->getContent(),
  46.                 "title"=> "Gestion des opportunités",
  47.                 "subtitle"=> "Liste des opportunités"
  48.             ]))
  49.         : $response;
  50.     }
  51.     /**
  52.      * @Route("/add", name="new")
  53.      * @Route("/{id}/edit", name="edit")
  54.      */
  55.     public function edit(Request $requestOpportunitiesTypes $item null)
  56.     {
  57.         if(!$item)
  58.             $item = new OpportunitiesTypes;
  59.         $em $this->getDoctrine()->getManager();
  60.         $form $this->createForm(OpportunitiesTypesType::class, $item);
  61.         $form->handleRequest($request);
  62.         if ($form->isSubmitted() && $form->isValid()){
  63.             $item->setSlug(Common::slug($item->getLabel()));
  64.             $em->persist($item);
  65.             $em->flush();
  66.             Common::trackChange($em$item$this->getUser(), 'edit'"Édition d'un type d'opportunité");
  67.             $this->addFlash("notice","Enregistrement effectué avec succès.");
  68.             return $this->redirectToRoute('opportunitiestypes-admin');
  69.         }
  70.         $ajax $request->isXmlHttpRequest();
  71.         $response $this->render('Admin\edit.html.twig',[
  72.             'form'=>$form->createView(),
  73.             'ajax'=>$ajax,
  74.             "title"=> "Gestion des opportunités",
  75.             "subtitle"=>"Edition d'un type d'opportunité "
  76.         ]);
  77.         return $ajax ?
  78.             new Response(\json_encode([
  79.                 'content'=>$response->getContent(),
  80.                 "title"=> "Gestion des opportunités",
  81.                 "subtitle"=>"Edition d'un type d'opportunité "
  82.             ]))
  83.         : $response;
  84.      }
  85.     /**
  86.      * @Route("/{id}/enable/", name="enable")
  87.      */
  88.     public function enable(Request $requestOpportunitiesTypes $item)
  89.     {
  90.         $em $this->getDoctrine()->getManager();
  91.         $item->setIsEnabled(!$item->getIsEnabled());
  92.         $em->persist($item);
  93.         $em->flush();
  94.         $ajax $request->isXmlHttpRequest();
  95.         if(!$ajax)
  96.             $this->addFlash("notice","Activation / Désactivation effectuée avec succès.");
  97.         return $ajax
  98.             ? new Response(\json_encode(['status'=>$item->getIsEnabled(), 'notice'=>'Activation / Désactivation effectuée avec succès.']))
  99.             : $this->redirectToRoute('opportunitiestypes-admin');
  100.     }
  101. }