<?php
namespace App\Controller;
use Symfony\Component\Routing\Annotation\Method;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Routing\Annotation\Security;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Doctrine\ORM\EntityManagerInterface;
use App\Entity\FormationsThematics;
use App\Form\FormationsThematicsType;
use App\Repository\FormationsThematicsRepository;
use OlaSoft\Common;
use App\Entity\UsersActivities;
/**
* @Route("/os-admin/formationsthematics", name="formationsthematics-")
*/
class FormationsThematicsController extends AbstractController
{
/**
* @Route("/",name="admin")
*/
public function indexAction()
{
$request = $this->get('request_stack')->getCurrentRequest();
$em = $this->getDoctrine()->getManager();
$list = $em->getRepository(FormationsThematics::class)->findBy(array(),array('id'=>'DESC'));
$ajax = $request->isXmlHttpRequest();
$response = $this->render('Admin\index.html.twig',[
'list'=>$list,
'ajax'=>$ajax,
'noResearch'=>true,
"title"=> "Gestion des formations",
"subtitle"=> "Liste des thématiques",
"addBtnClass"=>"btn-popup semi"
]);
return $ajax ?
new Response(\json_encode([
'content'=>$response->getContent(),
"title"=> "Gestion des formations",
"subtitle"=> "Liste des thématiques"
]))
: $response;
}
/**
* @Route("/add", name="new")
* @Route("/{id}/edit", name="edit")
*/
public function edit(FormationsThematics $item = null)
{
if(!$item){
$item = new FormationsThematics;
}
$em = $this->getDoctrine()->getManager();
$request = $this->get('request_stack')->getCurrentRequest();
$form = $this->createForm(FormationsThematicsType::class, $item);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()){
// $item->setSlug(Common::slug($item->getLabel()));
$em->persist($item);
$em->flush();
Common::trackChange(new UsersActivities, $em, $item, $this->getUser(), 'edit', "Édition d'une thématique de formation");
$this->addFlash("notice","Enregistrement effectué avec succès.");
return $this->redirectToRoute('formationsthematics-admin');
}
$ajax = $request->isXmlHttpRequest();
$response = $this->render('Admin\edit.html.twig',[
'form'=>$form->createView(),
'ajax'=>$ajax,
"title"=> "Gestion des formations",
"subtitle"=>"Edition d'une thématique "
]);
return $ajax ?
new Response(\json_encode([
'content'=>$response->getContent(),
"title"=> "Gestion des formations",
"subtitle"=>"Edition d'une thématique "
]))
: $response;
}
/**
* @Route("/{id}/enable/", name="enable")
*/
public function enable(FormationsThematics $item)
{
$request = $this->get('request_stack')->getCurrentRequest();
$em = $this->getDoctrine()->getManager();
$item->setIsEnabled(!$item->getIsEnabled());
$em->persist($item);
$em->flush();
Common::trackChange(new UsersActivities, $em, $item, $this->getUser(), 'enable', "Activation/désactivation d'une formation");
$ajax = $request->isXmlHttpRequest();
if(!$ajax)
$this->addFlash("notice","Activation / Désactivation effectuée avec succès.");
return $ajax
? new Response(\json_encode(['status'=>$item->getIsEnabled(), 'notice'=>'Activation / Désactivation effectuée avec succès.']))
: $this->redirectToRoute('formationsthematics-admin');
}
}