/** * cancel action * * @return void */ public function cancelAction() { if (!$this->div->isLoggedUserInGroup($this->settings['participantGroupId'])) { $this->addFlashMessage($this->div->translate('message.noParticipant', $this->extensionName), '', \TYPO3\CMS\Core\Messaging\AbstractMessage::ERROR); $this->redirect('list'); } if ($this->request->hasArgument('offset')) { $offset = $this->request->getArgument('offset'); if ($offset < 0) { $this->addFlashMessage($this->div->translate('message.pastEventError', $this->extensionName), '', \TYPO3\CMS\Core\Messaging\AbstractMessage::ERROR); $this->redirect('list', Null, Null, array('offset' => $offset)); } } if (!$this->request->hasArgument('offset')) { $offset = 0; } $eventStartDate = $this->div->nextEventDate($offset); $events = $this->eventRepository->findByStart($eventStartDate->format("Y-m-d H:i:s")); if ($events->count() == 0) { $this->div->createEvent($eventStartDate); $events = $this->eventRepository->findByStart($eventStartDate->format("Y-m-d H:i:s")); } $eventParticipant = $this->participantRepository->findParticipant($events->getFirst()->getUid(), $this->div->getLoggedUserId()); if ($eventParticipant->count() == 0) { $participant = new \PoiCom\PcEventScheduler\Domain\Model\Participant(); $participant->setParticipantUserId($this->div->getLoggedUser()); $participant->setAccept(FALSE); $events->getFirst()->addParticipant($participant); $this->eventRepository->update($events->getFirst()); } if ($eventParticipant->count() > 0) { if ($eventParticipant->getFirst()->getAccept()) { $eventParticipant->getFirst()->setAccept(FALSE); $this->eventRepository->update($events->getFirst()); } } $this->addFlashMessage($this->div->translate('message.canceledEvent', $this->extensionName), '', \TYPO3\CMS\Core\Messaging\AbstractMessage::OK); $this->redirect('list', Null, Null, array('offset' => $offset)); }