%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/ParticipantItem.php |
<?php /** * @link https://www.humhub.org/ * @copyright Copyright (c) 2022 HumHub GmbH & Co. KG * @license https://www.humhub.com/licences */ namespace humhub\modules\calendar\widgets; use humhub\components\Widget; use humhub\modules\calendar\models\CalendarEntry; use humhub\modules\calendar\models\CalendarEntryParticipant; use humhub\modules\user\models\User; use Yii; /** * ParticipantItem widget to display a participant row of the Calendar entry for Participants List */ class ParticipantItem extends Widget { /** * @var CalendarEntry */ public $entry; /** * @var User */ public $user; /** * @inheritdoc */ public function run() { return $this->render('participantItem', [ 'entry' => $this->entry, 'user' => $this->user, 'statuses' => self::getStatuses(), ]); } /** * Get possible statuses for participation * * @param CalendarEntry|null $entry The entry is used to restrict statuses depending on Entry settings or permissions of current User, * null - to don't restrict statuses * @param array|int|null $exclude What statuses should be excluded * @return array */ public static function getStatuses(?CalendarEntry $entry = null, $exclude = null): array { if ($entry && $entry->participation_mode == CalendarEntry::PARTICIPATION_MODE_INVITE) { $statuses = []; } else { $statuses = [ CalendarEntryParticipant::PARTICIPATION_STATE_ACCEPTED => Yii::t('CalendarModule.views_entry_edit', 'Attending'), CalendarEntryParticipant::PARTICIPATION_STATE_MAYBE => Yii::t('CalendarModule.views_entry_edit', 'Undecided'), CalendarEntryParticipant::PARTICIPATION_STATE_DECLINED => Yii::t('CalendarModule.views_entry_edit', 'Declined'), ]; } if (!$entry || $entry->canInvite()) { $statuses[CalendarEntryParticipant::PARTICIPATION_STATE_INVITED] = Yii::t('CalendarModule.views_entry_edit', 'Invited'); } if (!empty($exclude) && !empty($statuses)) { if (!is_array($exclude)) { $exclude = [$exclude]; } foreach ($exclude as $excludeStatus) { if (isset($statuses[$excludeStatus])) { unset($statuses[$excludeStatus]); } } } return $statuses; } public static function hasStatus($status): bool { return array_key_exists($status, self::getStatuses()); } public static function getStatusTitle($status): string { $statuses = self::getStatuses(); return $statuses[$status] ?? ''; } }