/** * @see Accessible\Handler::execute */ public function execute($params) { $isParamsOkToOpenEvent = $this->validateParamsToOpenEvent($params); $event = $isParamsOkToOpenEvent ? $this->retrieveCalendarEvent($params) : null; if ($isParamsOkToOpenEvent && !is_null($event)) { $formtEvInfo = $this->formatEventInformation($event); $currentEmailUser = TineSessionRepository::getTineSession()->getAttribute('Expressomail.email'); $eventHasNotOccurred = EventUtils::checkEventHasNotOccurred($event->from); $userAllowedToConfirm = EventUtils::isUserAllowedToConfirmEvent((object) array('currentEmailUser' => $currentEmailUser, 'attendees' => (object) $event->attendees)); $this->showTemplate('OpenEventTemplate', (object) array('lnkBackToCalendar' => $this->makeUrl('Calendar.Main', array('month' => $params->monthVal, 'year' => $params->yearVal, 'calendarId' => $params->calendarId)), 'date' => $formtEvInfo->date, 'summary' => $formtEvInfo->summary, 'schedule' => $formtEvInfo->schedule, 'location' => $formtEvInfo->location, 'description' => $formtEvInfo->description, 'organizerName' => $formtEvInfo->organizerName, 'organizerOrgUnitRegion' => $formtEvInfo->organizerOrgUnitRegion, 'countAttendees' => count($formtEvInfo->attendees), 'attendeesInformation' => $this->formatAttendeesInformation($formtEvInfo->attendees), 'lnkAccepted' => $this->makeUrl('Calendar.EventConfirmation', array('idEvent' => $params->idEvent, 'confirmation' => EventUtils::EVENTS_CONFIRM_ACCEPTED, 'month' => $params->monthVal, 'year' => $params->yearVal, 'calendarId' => $params->calendarId, 'from' => $params->from, 'until' => $params->until)), 'lnkDeclined' => $this->makeUrl('Calendar.EventConfirmation', array('idEvent' => $params->idEvent, 'confirmation' => EventUtils::EVENTS_CONFIRM_DECLINED, 'month' => $params->monthVal, 'year' => $params->yearVal, 'calendarId' => $params->calendarId, 'from' => $params->from, 'until' => $params->until)), 'lnkTentative' => $this->makeUrl('Calendar.EventConfirmation', array('idEvent' => $params->idEvent, 'confirmation' => EventUtils::EVENTS_CONFIRM_TENTATIVE, 'month' => $params->monthVal, 'year' => $params->yearVal, 'calendarId' => $params->calendarId, 'from' => $params->from, 'until' => $params->until)), 'lnkNeedsAction' => $this->makeUrl('Calendar.EventConfirmation', array('idEvent' => $params->idEvent, 'confirmation' => EventUtils::EVENTS_CONFIRM_NEEDS_ACTION, 'month' => $params->monthVal, 'year' => $params->yearVal, 'calendarId' => $params->calendarId, 'from' => $params->from, 'until' => $params->until)), 'isUserAllowedToConfirm' => $eventHasNotOccurred && $userAllowedToConfirm)); } else { // At this point something was not properly correct to open the event Dispatcher::processRequest('Core.ShowFeedback', (object) array('typeMsg' => ShowFeedback::MSG_ERROR, 'message' => 'Não foi possível acessar as informações desse evento!', 'destinationText' => 'Voltar para o calendário', 'destinationUrl' => (object) array('action' => 'Calendar.Main', 'params' => array('calendarId' => $params->calendarId, 'month' => $params->monthVal, 'year' => $params->yearVal)))); } }