<?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 App\Entity\StructuresCategories;
use App\Form\StructuresCategoriesType;
use OlaSoft\Common;
use Symfony\Component\HttpFoundation\Response;
use App\Entity\UsersActivities;
/**
* @Route("/os-admin/structures-categories")
*/
class StructuresCategoriesController extends AbstractController
{
/**
* @Route("/page/{offset}/",name="structurescategories-admin-page")
* @Route("/",name="structurescategories-admin")
*/
public function index($offset=1)
{
$request = $this->get('request_stack')->getCurrentRequest();
$count = 0;
$offset--;
$limit = 20;
$of=$offset*$limit;
$em = $this->getDoctrine()->getManager();
$list=$em->getRepository(StructuresCategories::class)->findBy(array(),array('id'=>'DESC'));
$ajax = $request->isXmlHttpRequest();
$response = $this->render('Admin\index.html.twig',[
'list'=>$list,
'ajax'=>$ajax,
'offset'=>$offset,
'count'=>$count,
'noResearch'=>true,
"title"=>"Gestion des catégories de structures ",
"subtitle"=>"Liste des catégories"
]);
return $ajax ?
new Response(\json_encode([
'content'=>$response->getContent(),
"title"=>"Gestion des catégories de structures ",
"subtitle"=>"Liste des catégories"
]))
: $response;
}
/**
* @Route("/add/",name="structurescategories-new", defaults={"isEdit":false})
* @Route("/edit/{id}/",name="structurescategories-edit")
*/
public function edit(StructuresCategories $category=null, $isEdit = true)
{
$em = $this->getDoctrine()->getManager();
$request = $this->get('request_stack')->getCurrentRequest();
if($category === null)
$category = new StructuresCategories();
$form=$this->createForm(StructuresCategoriesType::class,$category);
$form->handleRequest($request);
if($form->isSubmitted()){
if($form->isValid()){
$category->setSlug(Common::slug($category->getLabel()));
$em->persist($category);
$em->flush();
if ($isEdit)
Common::trackChange(new UsersActivities, $em, $category, $this->getUser(), 'add', "Ajout d'une catégorie de structure");
else
Common::trackChange(new UsersActivities, $em, $category, $this->getUser(), 'edit', "Modification d'une catégorie de structure");
$this->addFlash("notice","Enregistrement effectué avec succès");
return $this->redirectToRoute("structurescategories-admin");
}
}
$ajax = $request->isXmlHttpRequest();
$response = $this->render('Admin\edit.html.twig',[
'form'=>$form->createView(),
'ajax'=>$ajax,
"title"=>"Gestion des catégories de structures ",
"subtitle"=>"Edition d'une catégorie"
]);
return $ajax ?
new Response(\json_encode([
'content'=>$response->getContent(),
"title"=>"Gestion des catégories de structures ",
"subtitle"=>"Edition d'une catégorie"
]))
: $response;
}
/**
* @Route("/{id}/enable/", name="structurescategories-enable")
*/
public function enable(StructuresCategories $item)
{
$request = $this->get('request_stack')->getCurrentRequest();
$em = $this->getDoctrine()->getManager();
$item->setIsEnabled(!$item->getIsEnabled());
$em->persist($item);
$em->flush();
$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('structurescategories-admin');
}
}