Files
schedule/src/schedule-2.0/src/Controller/HomeController.php

141 lines
4.6 KiB
PHP
Executable File

<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
class HomeController extends AbstractController
{
public function home()
{
return $this->redirectToRoute("app_synthese");
/*
if($this->getUser()) {
return $this->redirectToRoute("app_synthese");
}
else {
return $this->render('Home/home.html.twig',[
"useheader" => true,
"usesidebar" => false,
]);
}
*/
}
public function customer()
{
return $this->render('Home/customer.html.twig',[
"useheader" => true,
"usesidebar" => false,
]);
}
public function selectmonth(Request $request)
{
$nbmonth = $request->request->get('nbmonth');
$this->get('session')->set('nbmonth',$nbmonth);
$output=["return"=>"OK"];
return new Response(json_encode($output));
}
public function selectuser(Request $request)
{
$iduser = $request->request->get('iduser');
$this->get('session')->set('iduser',$iduser);
$output=["return"=>"OK"];
return new Response(json_encode($output));
}
public function selectproject(Request $request)
{
$idproject = $request->request->get('idproject');
$this->get('session')->set('idproject',$idproject);
$output=["return"=>"OK"];
return new Response(json_encode($output));
}
public function selectservice(Request $request)
{
$em = $this->getDoctrine()->getManager();
$iddomaine = $this->get('session')->get('iddomaine');
$idservice = $request->request->get('idservice');
$this->get('session')->set('idservice',$idservice);
$output=["return"=>"OK"];
// On recalcul les users
if($idservice=="all")
$users=$em->getRepository("App:User")->findAll();
else
$users=$em->getRepository("App:User")->findBy(["service"=>$idservice]);
$tbusers=[];
$haveuser=false;
foreach($users as $user) {
if(in_array("ROLE_USER",$user->getRoles())) {
if($user->getId()==$this->get('session')->get('iduser'))
$haveuser=true;
$tmp=[
"id"=>$user->getId(),
"displayname"=>$user->getDisplayname()
];
array_push($tbusers,$tmp);
}
}
$this->get('session')->set('users',$tbusers);
if(!$haveuser) $this->get('session')->set("iduser","all");
// On recalcul les projets
$this->regenProjects($idservice,$iddomaine);
return new Response(json_encode($output));
}
public function selectdomaine(Request $request)
{
$iddomaine = $request->request->get('iddomaine');
$idservice = $this->get('session')->get('idservice');
$this->get('session')->set('iddomaine',$iddomaine);
$output=["return"=>"OK"];
// On recalcul les projets
$this->regenProjects($idservice,$iddomaine);
return new Response(json_encode($output));
}
private function regenProjects($idservice,$iddomaine) {
$em = $this->getDoctrine()->getManager();
if($idservice=="all"&&$iddomaine=="all")
$projects=$em->getRepository('App:Project')->findBy(["active"=>$this->get('session')->get('activeproject')]);
elseif($idservice!="all"&&$iddomaine!="all")
$projects=$em->getRepository('App:Project')->findBy(["active"=>$this->get('session')->get('activeproject'),"service"=>$idservice,"domaine"=>$iddomaine]);
elseif($idservice!="all")
$projects=$em->getRepository('App:Project')->findBy(["active"=>$this->get('session')->get('activeproject'),"service"=>$idservice]);
else
$projects=$em->getRepository('App:Project')->findBy(["active"=>$this->get('session')->get('activeproject'),"domaine"=>$iddomaine]);
$tbprojects=[];
$haveproject=false;
foreach($projects as $project) {
if($project->getId()==$this->get('session')->get('idproject'))
$haveproject=true;
$tmp=[
"id"=>$project->getId(),
"displayname"=>$project->getDisplayname()
];
array_push($tbprojects,$tmp);
}
$this->get('session')->set('projects',$tbprojects);
if(!$haveproject) $this->get('session')->set("idproject","all");
}
}