%PDF- %PDF-
Direktori : /home/vacivi36/intranet.vacivitta.com.br/protected/modules/calendar/widgets/ |
Current File : /home/vacivi36/intranet.vacivitta.com.br/protected/modules/calendar/widgets/EntryParticipants.php |
<?php namespace humhub\modules\calendar\widgets; use humhub\components\Widget; use humhub\modules\calendar\helpers\Url; use humhub\widgets\Button; use humhub\modules\calendar\models\CalendarEntry; use humhub\modules\calendar\models\CalendarEntryParticipant; use Yii; /** * Description of EntryParticipants * * @author luke */ class EntryParticipants extends Widget { /** * @var CalendarEntry */ public $calendarEntry; public function run() { if ($this->calendarEntry->closed) { return ''; } $countAttending = $this->getParticipantStateCount(CalendarEntryParticipant::PARTICIPATION_STATE_ACCEPTED, true); $countMaybe = $this->getParticipantStateCount(CalendarEntryParticipant::PARTICIPATION_STATE_MAYBE, $this->calendarEntry->allow_maybe); $countDeclined = $this->getParticipantStateCount(CalendarEntryParticipant::PARTICIPATION_STATE_DECLINED, $this->calendarEntry->allow_decline); $countInvited = $this->getParticipantStateCount(CalendarEntryParticipant::PARTICIPATION_STATE_INVITED, true); return $this->render('participants', [ 'calendarEntry' => $this->calendarEntry, 'countAttending' => $countAttending, 'countMaybe' => $countMaybe, 'countDeclined' => $countDeclined, 'countInvited' => $countInvited, ]); } private function getParticipantStateCount($state, $condition) { if(!$condition) { return null; } return $this->calendarEntry->getParticipantCount($state); } public static function participateButton(CalendarEntry $calendarEntry, $state, $label) { if($state == CalendarEntryParticipant::PARTICIPATION_STATE_MAYBE && !$calendarEntry->allow_maybe) { return null; } if($state == CalendarEntryParticipant::PARTICIPATION_STATE_DECLINED && !$calendarEntry->allow_decline) { return null; } $participantSate = $calendarEntry->getParticipationStatus(Yii::$app->user->identity); $button = Button::info($label) ->icon($participantSate === $state ? 'fa-check-circle' : null); if ($calendarEntry->isPast()) { $button->tooltip(Yii::t('CalendarModule.base', 'The event has already ended.')) ->cssClass('active fc-disabled-cursor') ->loader(false); } else { $button->action('calendar.respond', Url::toEntryRespond($calendarEntry, $state)) ->cssClass($participantSate === $state ? '' : 'active'); } return $button; } }