src/Controller/EventsController.php line 81
<?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\HttpFoundation\Request;
use Doctrine\Persistence\ManagerRegistry;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\File\UploadedFile;
use Symfony\Component\HttpFoundation\File\File;
use Doctrine\Common\Collections\ArrayCollection;
use Symfony\Component\Validator\Validator\ValidatorInterface;
use App\Entity\Events;
use App\Entity\Banners;
use App\Entity\Documents;
use App\Form\EventsType;
use App\Entity\EventsPictures;
use App\Entity\Pictures;
use App\Entity\UsersActivities;
use OlaSoft\Common;
/**
* @Route("/os-admin/events")
*/
class EventsController extends AbstractController
{
public function __construct(ManagerRegistry $doctrine){
$this->doctrine = $doctrine;
}
private $doctrine;
public function getDoctrine()
{
return $this->doctrine;
}
/**
*
* @Route("/page/{offset}/",name="events-admin-page")
* @Route("/",name="events-admin")
* @Route("/search/{keywords}/page/{offset}/",name="events-search-admin-page")
* @Route("/search/{keywords}/",name="events-search-admin")
*/
public function admin(Request $request, $keywords=null,$offset=1)
{
$offset--;
$limit = 20;
$of=$offset*$limit;
$em = $this->getDoctrine()->getManager();
$list = $em->getRepository(Events::class)->findBy(array(),array('id'=>'DESC'));
$ajax = $request->isXmlHttpRequest();
$response = $this->render('Admin\index.html.twig',[
'list'=>$list,
'ajax'=>$ajax,
// 'count'=>$count,
// 'table_limit'=>$limit,
// 'offset'=>$offset,
'addBtnClass'=>'btn-popup semi',
"title"=>"Gestion des events ",
"subtitle"=>"Liste de tous les events"
]);
return $ajax ?
new Response(\json_encode([
'content'=>$response->getContent(),
"title"=>"Gestion des events ",
"subtitle"=>"Liste de tous les events"
]))
: $response;
}
/**
* @Route("/add/",name="events-new", defaults={"isEdit":false})
* @Route("/{id}/edit",name="events-edit")
*/
public function edit(Request $request, Events $item=null, $isEdit = true, ValidatorInterface $validator)
{
$em = $this->getDoctrine()->getManager();
if($item === null){
$item = new Events();
$item->setCreatedBy($this->getUser());
}
$form=$this->createForm(EventsType::class,$item);
$form->handleRequest($request);
if($form->isSubmitted() && $form->isValid()){
$item->setSlug(Common::slug($item->getName()));
$em->persist($item);
$em->flush();
Common::trackChange($em, $item, $this->getUser(), 'edit', "Édition d'un événement");
$this->addFlash('notice','Enregistrement effectué avec succès');
return $this->redirectToRoute('events-admin');
}
$ajax = $request->isXmlHttpRequest();
$response = $this->render('Admin\edit.html.twig',[
'form' => $form->createView(),
'ajax' => $ajax,
'title' => "Gestion des events ",
'subtitle' => "Edition d'un événement",
]);
return $ajax ?
new Response(\json_encode([
'content' => $response->getContent(),
'title' => "Gestion des events ",
'subtitle' => "Edition d'un événement"
]))
: $response;
}
/**
* @Route("/{id}/enable", name="events-enable")
*/
public function enable(Request $request, Events $item)
{
$em = $this->getDoctrine()->getManager();
$item->setIsEnabled(!$item->getIsEnabled());
$em->persist($item);
$em->flush();
Common::trackChange($em, $item, $this->getUser(), $item->getIsEnabled() ? 'enable' : 'disable', $item->getIsEnabled() ? "Activation d'un événement" : "Désactivation d'un événement");
$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('events-admin');
}
}