public function loadEvents(CalendarEvent $calendarEvent) { $startDateFilter = $calendarEvent->getStartDatetime(); $endDateFilter = $calendarEvent->getEndDatetime(); // alert('event listener!'); // The original request so you can get filters from the calendar // Use the filter in your query for example $request = $calendarEvent->getRequest(); $filter = $request->get('filter'); // load events using your custom logic here, // for instance, retrieving events from a repository $classEvents = $this->entityManager->getRepository('SiploCalendarBundle:Event')->createQueryBuilder('company_events')->where('company_events.startDatetime BETWEEN :startDate and :endDate')->setParameter('startDate', $startDateFilter->format('Y-m-d H:i:s'))->setParameter('endDate', $endDateFilter->format('Y-m-d H:i:s'))->getQuery()->getResult(); // $companyEvents and $companyEvent in this example // represent entities from your database, NOT instances of EventEntity // within this bundle. // // Create EventEntity instances and populate it's properties with data // from your own entities/database values. foreach ($classEvents as $classEvent) { $eventEntity = new EventEntity($classEvent->getTitle(), $classEvent->getStartDatetime(), $classEvent->getEndDatetime(), false); //optional calendar event settings // $eventEntity->setAllDay(true); // default is false, set to true if this is an all day event $eventEntity->setBgColor($classEvent->getBgColor()); //set the background color of the event's label $eventEntity->setFgColor('#000000'); //set the foreground color of the event's label $eventEntity->setUrl('http://www.google.com'); // url to send user to when event label is clicked $eventEntity->setCssClass('my-custom-class'); // a custom class you may want to apply to event labels //finally, add the event to the CalendarEvent for displaying on the calendar $calendarEvent->addEvent($eventEntity); } }
public function loadEvents(CalendarEvent $calendarEvent) { $startDate = $calendarEvent->getStartDatetime(); $endDate = $calendarEvent->getEndDatetime(); // The original request so you can get filters from the calendar // Use the filter in your query for example $request = $calendarEvent->getRequest(); $filter = $request->get('filter'); // load events using your custom logic here, // for instance, retrieving events from a repository $companyEvents = $this->container->get('doctrine')->getEntityManager()->getRepository('AppBundle:Appointment')->createQueryBuilder('appointemnt')->where('appointemnt.startDatetime BETWEEN :startDate and :endDate AND appointemnt.specialist = :specialist_id')->setParameter('startDate', $startDate->format('Y-m-d H:i:s'))->setParameter('endDate', $endDate->format('Y-m-d H:i:s'))->setParameter('specialist_id', $request->request->get('specialist_id'))->getQuery()->getResult(); // $companyEvents and $companyEvent in this example // represent entities from your database, NOT instances of EventEntity // within this bundle. // // Create EventEntity instances and populate it's properties with data // from your own entities/database values. foreach ($companyEvents as $companyEvent) { $startDate = $companyEvent->getStartDatetime(); $eventEntity = new EventEntity($companyEvent->getStartDatetime()->format($this->container->getParameter('date.format')), $companyEvent->getStartDatetime(), $companyEvent->getEndDatetime()); //optional calendar event settings $eventEntity->setBgColor('#337ab7'); //set the background color of the event's label $eventEntity->setFgColor('#FFFFFF'); //set the foreground color of the event's label $eventEntity->setUrl('http://www.google.com'); // url to send user to when event label is clicked $eventEntity->setCssClass('my-custom-class'); // a custom class you may want to apply to event labels //finally, add the event to the CalendarEvent for displaying on the calendar $calendarEvent->addEvent($eventEntity); } }
public function loadEvents(CalendarEvent $calendarEvent) { $startDate = $calendarEvent->getStartDatetime(); $endDate = $calendarEvent->getEndDatetime(); // load events using your custom logic here, // for instance, retrieving events from a repository //compruebo si el usuario es un cliente o un profesional if ($this->user->hasRole('ROLE_PROFESIONAL')) { //es un profesional $companyEvents = $this->entityManager->getRepository('UserProfesionalBundle:ProfessionalEvent')->createQueryBuilder('company_events')->where('company_events.start_date BETWEEN :startDate and :endDate AND company_events.professional = :user')->setParameter('user', $this->user->getProfessional()->getId())->setParameter('startDate', $startDate->format('Y-m-d H:i:s'))->setParameter('endDate', $endDate->format('Y-m-d H:i:s'))->getQuery()->getResult(); } else { //es un cliente $companyEvents = $this->entityManager->getRepository('UserProfesionalBundle:ProfessionalEvent')->createQueryBuilder('company_events')->where('company_events.start_date BETWEEN :startDate and :endDate AND company_events.client = :user')->setParameter('user', $this->user->getProfessional()->getId())->setParameter('startDate', $startDate->format('Y-m-d H:i:s'))->setParameter('endDate', $endDate->format('Y-m-d H:i:s'))->getQuery()->getResult(); } foreach ($companyEvents as $companyEvent) { // create an event with a start/end time, or an all day event $interval = new \DateInterval($companyEvent->getDuration()); $enddate = $companyEvent->getStartDate()->add($interval); $eventEntity = new EventEntity($companyEvent->getClient()->getUser()->getName() . " " . $companyEvent->getClient()->getUser()->getSurname(), $companyEvent->getStartDate(), $enddate); //optional calendar event settings $eventEntity->setAllDay(true); // default is false, set to true if this is an all day event $eventEntity->setBgColor('#5B9BB4'); //set the background color of the event's label $eventEntity->setFgColor('#FFFFFF'); //set the foreground color of the event's label $eventEntity->setUrl($this->router->generate('profesional_show_event', array('idEvent' => $companyEvent->getId()))); // url to send user to when event label is clicked $eventEntity->setCssClass('consulta'); // a custom class you may want to apply to event labels //finally, add the event to the CalendarEvent for displaying on the calendar $calendarEvent->addEvent($eventEntity); } }
public function loadEvents(CalendarEvent $calendarEvent) { $request = $calendarEvent->getRequest(); $title = $request->get('title'); $description = $request->get('description'); $start = $request->get('start'); $end = $request->get('end'); $idMachine = 2; /////TO FIX --> get ID from route if ($title && $description && $start && $end) { //converting unix timestamp from ms to s (because javascript provide ms) $start = \DateTime::createFromFormat('U', $start / 1000); $end = \DateTime::createFromFormat('U', $end / 1000); $em = $this->entityManager; $repository = $em->getRepository('ReservationBundle:Bookables\\Machine'); $resource = $repository->find($idMachine); $event = new \CentraleLille\ReservationBundle\Entity\Booking\Event(); $event->setBookable($resource); $event->setTitle($title); $event->setDescription($description); $time = new \DateTime('now'); $event->setCreationDateTime($time); $event->setStartDateTime($start); $event->setEndDateTime($end); $event->setStatus(''); //$booker = $this->get('event_booker'); //$booker->book(); $em->persist($event); $em->flush(); } // The original request so you can get filters from the calendar // Use the filter in your query for example // load events using your custom logic here, // for instance, retrieving events from a repository $companyEvents = $this->entityManager->getRepository('ReservationBundle:Booking\\Event')->createQueryBuilder('event')->where('event.bookable = :id')->setParameter('id', $idMachine)->getQuery()->getResult(); // $companyEvents and $companyEvent in this example // represent entities from your database, NOT instances of EventEntity // within this bundle. // // Create EventEntity instances and populate it's properties with data // from your own entities/database values. foreach ($companyEvents as $companyEvent) { // create an event with a start/end time, or an all day event $eventEntity = new EventEntity($companyEvent->getTitle(), $companyEvent->getStartDatetime(), $companyEvent->getEndDatetime(), false); //optional calendar event settings $eventEntity->setBgColor('#FF0000'); //set the background color of the event's label $eventEntity->setFgColor('#FFFFFF'); //set the foreground color of the event's label $eventEntity->setUrl('#'); // url to send user to when event label is clicked //finally, add the event to the CalendarEvent for displaying on the calendar $calendarEvent->addEvent($eventEntity); } }
public function loadEvents(CalendarEvent $calendarEvent) { $startDate = $calendarEvent->getStartDatetime(); $endDate = $calendarEvent->getEndDatetime(); // The original request so you can get filters from the calendar // Use the filter in your query for example $request = $calendarEvent->getRequest(); $filter = $request->get('filter'); $user = $this->securityContext->getToken()->getUser(); // load events using your custom logic here, // for instance, retrieving events from a repository $companyEvents = $this->entityManager->getRepository('CalendarEngineBundle:UserEvent')->createQueryBuilder('user_events')->where('user_events.date BETWEEN :startDate and :endDate')->andWhere('user_events.userId = :id')->setParameter('startDate', $startDate->format('Y-m-d H:i:s'))->setParameter('endDate', $endDate->format('Y-m-d H:i:s'))->setParameter("id", $user->getId())->getQuery()->getResult(); // $companyEvents and $companyEvent in this example // represent entities from your database, NOT instances of EventEntity // within this bundle. // // Create EventEntity instances and populate it's properties with data // from your own entities/database values. foreach ($companyEvents as $companyEvent) { $eventDate = $companyEvent->getDate(); $now = new \DateTime('now'); $eventEntity = new EventEntity($eventDate->format("H:i") . " " . $companyEvent->getEventTitle(), $eventDate, null, true); //optional calendar event settings $eventEntity->setAllDay(true); // default is false, set to true if this is an all day event if ($eventDate < $now) { $eventEntity->setBgColor('#FF0000'); //set the background color of the event's label } else { $eventEntity->setBgColor('#17961E'); //set the background color of the event's label } $eventEntity->setFgColor('#FFFFFF'); //set the foreground color of the event's label $eventEntity->setUrl($this->router->generate('calendar_app_showEvent', ['id' => $companyEvent->getId()])); // url to send user to when event label is clicked $eventEntity->setCssClass('my-custom-class'); // a custom class you may want to apply to event labels //finally, add the event to the CalendarEvent for displaying on the calendar $calendarEvent->addEvent($eventEntity); } }
public function loadEvents(CalendarEvent $calendarEvent) { $sc = $this->sc; $startDate = $calendarEvent->getStartDatetime(); $endDate = $calendarEvent->getEndDatetime(); // load events using your custom logic here, // for instance, retrieving events from a repository $companyEvents = $this->entityManager->getRepository('TaskeetMainBundle:Event')->createQueryBuilder('company_events')->where('company_events.startDate BETWEEN :startDate and :endDate')->andWhere('company_events.owner = :owner ')->setParameter(':startDate', $startDate->format('Y-m-d H:i:s'))->setParameter(':endDate', $endDate->format('Y-m-d H:i:s'))->setParameter(':owner', $sc->getToken()->getUser()->getId())->getQuery()->getResult(); foreach ($companyEvents as $companyEvent) { // create an event with a start/end time, or an all day event //if ($companyEvent->getAllDayEvent() === false) { $eventEntity = new EventEntity($companyEvent->getTitle(), $companyEvent->getStartDate(), $companyEvent->getDueDate()); //} else { // $eventEntity = new EventEntity($companyEvent->getTitle(), $companyEvent->getStartDatetime(), null, true); // } //optional calendar event settings if ($companyEvent->getStartDate() == $companyEvent->getDueDate()) { $eventEntity->setAllDay(true); } else { $eventEntity->setAllDay(false); } if ($companyEvent->getType()->getName() == "categoria 1") { $eventEntity->setBgColor('#FF0000'); //set the background color of the event's label $eventEntity->setFgColor('#FFFFFF'); //set the foreground color of the event's label } else { $eventEntity->setBgColor('#000000'); //set the background color of the event's label $eventEntity->setFgColor('#FFFFFF'); //set the foreground color of the event's label } $eventEntity->setUrl($companyEvent->getid() . '/edit'); // url to send user to when event label is clicked $eventEntity->setCssClass('my-custom-class'); // a custom class you may want to apply to event labels //finally, add the event to the CalendarEvent for displaying on the calendar $calendarEvent->addEvent($eventEntity); } }
public function loadEvents(CalendarEvent $calendarEvent) { $startDate = $calendarEvent->getStartDatetime(); $endDate = $calendarEvent->getEndDatetime(); // The original request so you can get filters from the calendar // Use the filter in your query for example $request = $calendarEvent->getRequest(); $filter = $request->get('filter'); // load events using your custom logic here, // for instance, retrieving events from a repository /*=================================================*/ /* I) Détermine quel type d'utilisateur est connecté*/ /* Pourrait être remplacé par $utilisateur->getType() Mais impossible car il type n'est pas un attribut de la BDD; c'est uniquement un champs dans la BDD pour déterminer qui est User,Etudiant ou Prof... /*=================================================*/ /* recuperation de l'utlilisateur actuelle */ $utilisateur = $this->container->get('security.context')->getToken()->getUser(); /* l'entite manager, pour intérgair avec la BDD */ /* construction de la requete */ $query = $this->entityManager->getRepository('UserBundle:Etudiant')->createQueryBuilder('a')->where('a.id = :iduser')->setParameter('iduser', $utilisateur->getId()); /*exectuon de la requete*/ $etudiant = $query->getQuery()->getOneOrNullResult(); /* on ne veut qu'un seul resultat, donc pas de getResult()*/ if ($etudiant == NULL) { $query = $this->entityManager->getRepository('UserBundle:Professeur')->createQueryBuilder('a')->where('a.id = :iduser')->setParameter('iduser', $utilisateur->getId()); $professeur = $query->getQuery()->getOneOrNullResult(); if ($professeur == NULL) { $type = 'user'; } else { $type = 'professeur'; } } else { $type = 'etudiant'; } /*====================================================================*/ /* II) Recherche des evenements en fonction du type de l'utilisateur */ /*====================================================================*/ switch ($type) { case 'user': $companyEvents = $this->entityManager->getRepository('EDTBundle:Evenement')->createQueryBuilder('company_events')->join('company_events.type', 't')->addSelect('t')->getQuery()->getResult(); break; case 'professeur': $companyEvents = $this->entityManager->getRepository('EDTBundle:Evenement')->createQueryBuilder('company_events')->where('company_events.professeur = :prof')->join('company_events.type', 't')->addSelect('t')->setParameter('prof', $utilisateur)->getQuery()->getResult(); break; case 'etudiant': $companyEvents = $this->entityManager->getRepository('EDTBundle:Evenement')->createQueryBuilder('company_events')->join('company_events.type', 't')->addSelect('t')->leftJoin('company_events.groupes', 'groupes')->where('groupes.id = :id_groupe')->setParameter('id_groupe', $etudiant->getGroupe()->getId())->getQuery()->getResult(); break; } // $companyEvents and $companyEvent in this example // represent entities from your database, NOT instances of EventEntity // within this bundle. // // Create EventEntity instances and populate it's properties with data // from your own entities/database values. foreach ($companyEvents as $companyEvent) { // create an event with a start/end time, or an all day event if ($companyEvent->getAllDayEvent() === false) { $eventEntity = new EventEntity($companyEvent->getTitle(), $companyEvent->getStartDatetime(), $companyEvent->getEndDatetime()); } else { $eventEntity = new EventEntity($companyEvent->getTitle(), $companyEvent->getStartDatetime(), null, true); } $color = '#00FFFF'; if ($companyEvent) { switch ($companyEvent->getType()->getNom()) { case 'CM': $color = '#0000FF'; break; case 'TD': $color = '#FF0000'; break; case 'TP': $color = '#00FF00'; break; case 'TDI': $color = '#FF00FF'; break; } } $eventEntity->setBgColor($color); //set the background color of the event's label $eventEntity->setFgColor('#FFFFFF'); //set the foreground color of the event's label $eventEntity->setUrl('#'); // url to send user to when event label is clicked //$eventEntity->setCssClass('my-custom-class'); // a custom class you may want to apply to event labels //finally, add the event to the CalendarEvent for displaying on the calendar $calendarEvent->addEvent($eventEntity); } }