src/Controller/ResourcesCategoriesController.php line 69

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