src/Controller/ProjectsController.php line 65
<?phpnamespace 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 Doctrine\Persistence\ManagerRegistry;use App\Entity\Projects;use App\Form\ProjectsType;use App\Repository\ProjectsRepository;use OlaSoft\Common;use App\Entity\UsersActivities;/*** @Route("/os-admin/projects", name="projects-")*/class ProjectsController extends AbstractController{public function __construct(ManagerRegistry $doctrine){$this->doctrine = $doctrine;}private $doctrine;public function getDoctrine(){return $this->doctrine;}/*** @Route("/",name="admin")*/public function indexAction(Request $request){$em = $this->getDoctrine()->getManager();$list = $em->getRepository(Projects::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 projects","subtitle"=> "Liste des projects","addBtnClass"=>"btn-popup semi"]);return $ajax ?new Response(\json_encode(['content'=>$response->getContent(),"title"=> "Gestion des projects","subtitle"=> "Liste des projects"])): $response;}/*** @Route("/add", name="new")* @Route("/{id}/edit", name="edit")*/public function edit(Request $request,Projects $project = null){if(!$project){$project = new Projects;$project->setUser($this->getUser());$project->setCreatedAt(new \DateTime);}else{$project->setUpdatedBy($this->getUser());$project->setLastUpdate(new \DateTime);}$em = $this->getDoctrine()->getManager();$form = $this->createForm(ProjectsType::class, $project);$form->handleRequest($request);if ($form->isSubmitted() && $form->isValid()){$project->setSlug(Common::slug($project->getName()));$em->persist($project);$em->flush();Common::trackChange($em, $project, $this->getUser(), 'edit', "Édition d'un projet");$this->addFlash("notice","Enregistrement effectué avec succès.");return $this->redirectToRoute('projects-admin');}$ajax = $request->isXmlHttpRequest();$response = $this->render('Admin\edit.html.twig',['form'=>$form->createView(),'ajax'=>$ajax,"title"=> "Gestion des projects","subtitle"=>"Edition d'un project "]);return $ajax ?new Response(\json_encode(['content'=>$response->getContent(),"title"=> "Gestion des projects","subtitle"=>"Edition d'un project "])): $response;}/*** @Route("/{id}/enable/", name="enable")*/public function enable(Request $request, Projects $project){$em = $this->getDoctrine()->getManager();$project->setIsEnabled(!$project->getIsEnabled());$em->persist($project);$em->flush();Common::trackChange($em, $project, $this->getUser(), 'enable', "Activation/désactivation d'un projet");$ajax = $request->isXmlHttpRequest();if(!$ajax)$this->addFlash("notice","Activation / Désactivation effectuée avec succès.");return $ajax? new Response(\json_encode(['status'=>$project->getIsEnabled(), 'notice'=>'Activation / Désactivation effectuée avec succès.'])): $this->redirectToRoute('projects-admin');}}