From 151be1a66e74c30b8b17e1ba63dc5b36346a9003 Mon Sep 17 00:00:00 2001 From: afornerot Date: Fri, 26 Jun 2020 15:45:48 +0200 Subject: [PATCH] event shared --- .../Controller/CalendareventController.php | 34 +++++++++++++------ .../Repository/CalendareventRepository.php | 4 --- 2 files changed, 23 insertions(+), 15 deletions(-) diff --git a/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/CalendareventController.php b/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/CalendareventController.php index fea73611..19f7a6fb 100644 --- a/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/CalendareventController.php +++ b/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/CalendareventController.php @@ -19,9 +19,10 @@ class CalendareventController extends Controller public function loadAction(Request $request,$access="config") { // S'assurer que c'est un appel ajax - if (!$request->isXmlHttpRequest()) return new JsonResponse(array('message' => 'Interdit'), 400); - - $output=array(); + // if (!$request->isXmlHttpRequest()) return new JsonResponse(array('message' => 'Interdit'), 400); + + $events=array(); + $eventids=array(); $idcalendar = $request->query->get('idcalendar'); $start = $request->query->get('start'); $end = $request->query->get('end'); @@ -62,15 +63,23 @@ class CalendareventController extends Controller $tmp['color'] = "#".(is_null($calendar->getColor())?$this->get('session')->get('color')["main"]:$calendar->getColor()); $tmp['allDay'] = $calendarevent->getAllday(); $tmp['calendar'] = $calendar->getId(); - $tmp['editable'] = $calendar->getCanupdate(); + $tmp['editable'] = $calendarevent->getCalendar()->getCanupdate(); - array_push($output,$tmp); + array_push($events,$tmp); + array_push($eventids,$tmp["id"]); } } - if($idcalendar==0) { - $calendareventsshared = $this->getDoctrine()->getRepository("CadolesPortalBundle:Calendarevent")->getCalendareventShareByDate($this->getUser(),$start,$end); - foreach($calendareventsshared as $calendarevent) { + // On récupére les évenement partagé de l'utilisateur + if($this->getUser()) { + + $calendarevents = $this->getDoctrine()->getRepository("CadolesPortalBundle:Calendarevent")->getCalendareventGroupsShareByDate($this->getUser(),$start,$end); + + foreach($calendarevents as $calendarevent) { + if($idcalendar>0) { + if(!$calendarevent->getGroups()->contains($calendar->getGroups()[0])) continue; + } + $tmp=[]; $tmp['id'] = strval($calendarevent->getId()); $tmp['title'] = $calendarevent->getName(); @@ -80,13 +89,16 @@ class CalendareventController extends Controller $tmp['color'] = "#".(is_null($calendar->getColor())?$this->get('session')->get('color')["main"]:$calendar->getColor()); $tmp['allDay'] = $calendarevent->getAllday(); $tmp['calendar'] = $calendar->getId(); - $tmp['editable'] = $calendar->getCanupdate(); + $tmp['editable'] = $calendarevent->getCalendar()->getCanupdate(); - array_push($output,$tmp); + if(!in_array($tmp['id'],$eventids)) { + array_push($events,$tmp); + array_push($eventids,$tmp["id"]); + } } } - $response = new Response(json_encode($output)); + $response = new Response(json_encode($events)); $response->headers->set('Content-Type', 'application/text'); return $response; } diff --git a/src/ninegate-1.0/src/Cadoles/PortalBundle/Repository/CalendareventRepository.php b/src/ninegate-1.0/src/Cadoles/PortalBundle/Repository/CalendareventRepository.php index 5b7ef3f5..c9d66baa 100644 --- a/src/ninegate-1.0/src/Cadoles/PortalBundle/Repository/CalendareventRepository.php +++ b/src/ninegate-1.0/src/Cadoles/PortalBundle/Repository/CalendareventRepository.php @@ -82,10 +82,6 @@ class CalendareventRepository extends EntityRepository ->andWhere('groupe=usergroupe.group') ->andWhere('usergroupe.user=:user') - ->from('CadolesCoreBundle:UserGroup','proprio') - ->andWhere('proprio.group=groupe') - ->andWhere('proprio.user=calendar.user') - ->setParameter('fgcanshare',true) ->setParameter('user',$user) ->setParameter('start',$start)