src/Controller/OpportunitiesController.php line 27

  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\Opportunities;
  12. use App\Form\OpportunitiesType;
  13. use App\Repository\OpportunitiesRepository;
  14. use OlaSoft\Common;
  15. use App\Entity\UsersActivities;
  16. /**
  17.  * @Route("/os-admin/opportunities", name="opportunities-")
  18.  */
  19. class OpportunitiesController extends OSController
  20. {
  21.     /**
  22.      * @Route("/",name="admin")
  23.      */
  24.     public function indexAction(Request $request)
  25.     {
  26.         $em $this->getDoctrine()->getManager();
  27.         $list $em->getRepository(Opportunities::class)->findBy(array(),array('id'=>'DESC'));
  28.         $ajax $request->isXmlHttpRequest();
  29.         $response $this->render('Admin\index.html.twig',[
  30.             'list'=>$list,
  31.             'ajax'=>$ajax,
  32.             'noResearch'=>true,
  33.             "title"=> "Gestion des opportunities",
  34.             "subtitle"=> "Liste des opportunities",
  35.             "addBtnClass"=>"btn-popup semi"
  36.         ]);
  37.         return $ajax ?
  38.             new Response(\json_encode([
  39.                 'content'=>$response->getContent(),
  40.                 "title"=> "Gestion des opportunities",
  41.                 "subtitle"=> "Liste des opportunities"
  42.             ]))
  43.         : $response;
  44.     }
  45.     /**
  46.      * @Route("/add", name="new")
  47.      * @Route("/{id}/edit", name="edit")
  48.      */
  49.     public function edit(Request $request,Opportunities $opportunity null)
  50.     {
  51.         if(!$opportunity){
  52.             $opportunity = new Opportunities;
  53.             $opportunity->setUser($this->getUser());
  54.         }
  55.         else{
  56.             $opportunity->setUpdatedBy($this->getUser() ? $this->getUser() : null);
  57.             $opportunity->setLastUpdate(new \DateTime);
  58.         }
  59.         $em $this->getDoctrine()->getManager();
  60.         $form $this->createForm(OpportunitiesType::class, $opportunity);
  61.         $form->handleRequest($request);
  62.         if ($form->isSubmitted() && $form->isValid()){
  63.             $em->persist($opportunity);
  64.             $em->flush();
  65.             Common::trackChange($em$opportunity$this->getUser(), 'edit'"Édition d'une opportuntité");
  66.             $this->addFlash("notice","Enregistrement effectué avec succès.");
  67.             return $this->redirectToRoute('opportunities-admin');
  68.         }
  69.         $ajax $request->isXmlHttpRequest();
  70.         $response $this->render('Admin\edit.html.twig',[
  71.             'form'=>$form->createView(),
  72.             'ajax'=>$ajax,
  73.             "title"=> "Gestion des opportunités",
  74.             "subtitle"=>"Edition d'une opportunité "
  75.         ]);
  76.         return $ajax ?
  77.             new Response(\json_encode([
  78.                 'content'=>$response->getContent(),
  79.                 "title"=> "Gestion des opportunités",
  80.                 "subtitle"=>"Edition d'une opportunité "
  81.             ]))
  82.         : $response;
  83.      }
  84.     /**
  85.      * @Route("/{id}/enable/", name="enable")
  86.      */
  87.     public function enable(Request $requestOpportunities $opportunity)
  88.     {
  89.         $em $this->getDoctrine()->getManager();
  90.         $opportunity->setIsEnabled(!$opportunity->getIsEnabled());
  91.         $em->persist($opportunity);
  92.         $em->flush();
  93.         Common::trackChange($em$opportunity$this->getUser(), 'enable'"Activation/désactivation d'un projet");
  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'=>$opportunity->getIsEnabled(), 'notice'=>'Activation / Désactivation effectuée avec succès.']))
  99.             : $this->redirectToRoute('opportunities-admin');
  100.     }
  101. }