Differential D16299 Diff 39200 src/applications/calendar/query/PhabricatorCalendarEventSearchEngine.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/calendar/query/PhabricatorCalendarEventSearchEngine.php
Show First 20 Lines • Show All 258 Lines • ▼ Show 20 Lines | if ($this->isMonthView($query)) { | ||||
return $this->buildCalendarDayView($events, $query, $handles); | return $this->buildCalendarDayView($events, $query, $handles); | ||||
} | } | ||||
assert_instances_of($events, 'PhabricatorCalendarEvent'); | assert_instances_of($events, 'PhabricatorCalendarEvent'); | ||||
$viewer = $this->requireViewer(); | $viewer = $this->requireViewer(); | ||||
$list = new PHUIObjectItemListView(); | $list = new PHUIObjectItemListView(); | ||||
foreach ($events as $event) { | foreach ($events as $event) { | ||||
$attendees = array(); | |||||
foreach ($event->getInvitees() as $invitee) { | |||||
$status_attending = PhabricatorCalendarEventInvitee::STATUS_ATTENDING; | |||||
if ($invitee->getStatus() === $status_attending) { | |||||
$attendees[] = $invitee->getInviteePHID(); | |||||
} | |||||
} | |||||
if ($event->getIsGhostEvent()) { | if ($event->getIsGhostEvent()) { | ||||
$monogram = $event->getParentEvent()->getMonogram(); | $monogram = $event->getParentEvent()->getMonogram(); | ||||
$index = $event->getSequenceIndex(); | $index = $event->getSequenceIndex(); | ||||
$monogram = "{$monogram}/{$index}"; | $monogram = "{$monogram}/{$index}"; | ||||
} else { | } else { | ||||
$monogram = $event->getMonogram(); | $monogram = $event->getMonogram(); | ||||
} | } | ||||
$item = id(new PHUIObjectItemView()) | $item = id(new PHUIObjectItemView()) | ||||
->setUser($viewer) | ->setUser($viewer) | ||||
->setObject($event) | ->setObject($event) | ||||
->setObjectName($monogram) | ->setObjectName($monogram) | ||||
->setHeader($event->getName()) | ->setHeader($event->getName()) | ||||
->setHref($event->getURI()) | ->setHref($event->getURI()); | ||||
->addAttribute($event->renderEventDate($viewer, false)); | |||||
if ($attendees) { | $item->addAttribute($event->renderEventDate($viewer, false)); | ||||
$attending = pht( | |||||
'Attending: %s', | |||||
$viewer->renderHandleList($attendees) | |||||
->setAsInline(1) | |||||
->render()); | |||||
$item->addAttribute($attending); | if ($event->isCancelledEvent()) { | ||||
$status_icon = 'fa-times red'; | |||||
$status_label = pht('Cancelled'); | |||||
$item->setDisabled(true); | |||||
} else if ($viewer->isLoggedIn()) { | |||||
$status = $event->getUserInviteStatus($viewer->getPHID()); | |||||
switch ($status) { | |||||
case PhabricatorCalendarEventInvitee::STATUS_ATTENDING: | |||||
$status_icon = 'fa-check-circle green'; | |||||
$status_label = pht('Attending'); | |||||
break; | |||||
case PhabricatorCalendarEventInvitee::STATUS_INVITED: | |||||
$status_icon = 'fa-user-plus green'; | |||||
$status_label = pht('Invited'); | |||||
break; | |||||
case PhabricatorCalendarEventInvitee::STATUS_DECLINED: | |||||
$status_icon = 'fa-times grey'; | |||||
$status_label = pht('Declined'); | |||||
break; | |||||
default: | |||||
$status_icon = $event->getIcon().' grey'; | |||||
$status_label = null; | |||||
break; | |||||
} | |||||
} | } | ||||
$item->setStatusIcon($status_icon, $status_label); | |||||
$host = pht( | |||||
'Hosted by %s', | |||||
$viewer->renderHandle($event->getHostPHID())); | |||||
$item->addByline($host); | |||||
$list->addItem($item); | $list->addItem($item); | ||||
} | } | ||||
$result = new PhabricatorApplicationSearchResultView(); | $result = new PhabricatorApplicationSearchResultView(); | ||||
$result->setObjectList($list); | $result->setObjectList($list); | ||||
$result->setNoDataString(pht('No events found.')); | $result->setNoDataString(pht('No events found.')); | ||||
return $result; | return $result; | ||||
▲ Show 20 Lines • Show All 228 Lines • Show Last 20 Lines |