src/Controller/StructuresCategoriesController.php line 33

Open in your IDE?
  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 App\Entity\StructuresCategories;
  9. use App\Form\StructuresCategoriesType;
  10. use OlaSoft\Common;
  11. use Symfony\Component\HttpFoundation\Response;
  12. use App\Entity\UsersActivities;
  13. /**
  14.  * @Route("/os-admin/structures-categories")
  15.  */
  16. class StructuresCategoriesController extends AbstractController
  17. {
  18.     /**
  19.      * @Route("/page/{offset}/",name="structurescategories-admin-page")
  20.      * @Route("/",name="structurescategories-admin")
  21.      */
  22.     public function index($offset=1)
  23.     {
  24.         $request $this->get('request_stack')->getCurrentRequest();
  25.         $count 0;
  26.         $offset--;
  27.         $limit 20;
  28.         $of=$offset*$limit;
  29.         $em $this->getDoctrine()->getManager();
  30.         $list=$em->getRepository(StructuresCategories::class)->findBy(array(),array('id'=>'DESC'));
  31.         $ajax $request->isXmlHttpRequest();
  32.         $response $this->render('Admin\index.html.twig',[
  33.             'list'=>$list,
  34.             'ajax'=>$ajax,
  35.             'offset'=>$offset,
  36.             'count'=>$count,
  37.             'noResearch'=>true,
  38.             "title"=>"Gestion des catégories de structures ",
  39.             "subtitle"=>"Liste des catégories"
  40.         ]);
  41.         return $ajax ?
  42.             new Response(\json_encode([
  43.                 'content'=>$response->getContent(),
  44.                 "title"=>"Gestion des catégories de structures ",
  45.                 "subtitle"=>"Liste des catégories"
  46.             ]))
  47.         : $response;
  48.     }
  49.     /**
  50.      * @Route("/add/",name="structurescategories-new", defaults={"isEdit":false})
  51.      * @Route("/edit/{id}/",name="structurescategories-edit")
  52.      */
  53.     public function edit(StructuresCategories $category=null$isEdit true)
  54.     {
  55.         $em $this->getDoctrine()->getManager();
  56.         $request $this->get('request_stack')->getCurrentRequest();
  57.         if($category === null)
  58.             $category = new StructuresCategories();
  59.         $form=$this->createForm(StructuresCategoriesType::class,$category);
  60.         $form->handleRequest($request);
  61.         if($form->isSubmitted()){
  62.             if($form->isValid()){
  63.                 $category->setSlug(Common::slug($category->getLabel()));
  64.                 $em->persist($category);
  65.                 $em->flush();
  66.                 if ($isEdit)
  67.                     Common::trackChange(new UsersActivities$em$category$this->getUser(), 'add'"Ajout d'une catégorie de structure");
  68.                 else
  69.                     Common::trackChange(new UsersActivities$em$category$this->getUser(), 'edit'"Modification d'une catégorie de structure");
  70.                 $this->addFlash("notice","Enregistrement effectué avec succès");
  71.                 return $this->redirectToRoute("structurescategories-admin");
  72.             }
  73.         }
  74.         $ajax $request->isXmlHttpRequest();
  75.         $response $this->render('Admin\edit.html.twig',[
  76.             'form'=>$form->createView(),
  77.             'ajax'=>$ajax,
  78.             "title"=>"Gestion des catégories de structures ",
  79.             "subtitle"=>"Edition d'une catégorie"
  80.         ]);
  81.         return $ajax ?
  82.             new Response(\json_encode([
  83.                 'content'=>$response->getContent(),
  84.                 "title"=>"Gestion des catégories de structures ",
  85.                 "subtitle"=>"Edition d'une catégorie"
  86.             ]))
  87.         : $response;
  88.     }
  89.     /**
  90.      * @Route("/{id}/enable/", name="structurescategories-enable")
  91.      */
  92.     public function enable(StructuresCategories $item)
  93.     {
  94.         $request $this->get('request_stack')->getCurrentRequest();
  95.         $em $this->getDoctrine()->getManager();
  96.         $item->setIsEnabled(!$item->getIsEnabled());
  97.         $em->persist($item);
  98.         $em->flush();
  99.         $ajax $request->isXmlHttpRequest();
  100.         if(!$ajax)
  101.             $this->addFlash("notice","Activation / Désactivation effectuée avec succès.");
  102.         return $ajax
  103.             ? new Response(\json_encode(['status'=>$item->getIsEnabled(), 'notice'=>'Activation / Désactivation effectuée avec succès.']))
  104.             : $this->redirectToRoute('structurescategories-admin');
  105.     }
  106. }