Differential D12631 Diff 30325 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 185 Lines • ▼ Show 20 Lines | protected function getRequiredHandlePHIDsForResultList( | ||||
return array_keys($phids); | return array_keys($phids); | ||||
} | } | ||||
protected function renderResultList( | protected function renderResultList( | ||||
array $events, | array $events, | ||||
PhabricatorSavedQuery $query, | PhabricatorSavedQuery $query, | ||||
array $handles) { | array $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) { | ||||
if ($event->getUserPHID() == $viewer->getPHID()) { | |||||
$href = '/E'.$event->getID(); | $href = '/E'.$event->getID(); | ||||
} else { | |||||
$from = $event->getDateFrom(); | |||||
$month = phabricator_format_local_time($from, $viewer, 'm'); | |||||
$year = phabricator_format_local_time($from, $viewer, 'Y'); | |||||
$uri = new PhutilURI($this->getApplicationURI()); | |||||
$uri->setQueryParams( | |||||
array( | |||||
'month' => $month, | |||||
'year' => $year, | |||||
)); | |||||
$href = (string) $uri; | |||||
} | |||||
$from = phabricator_datetime($event->getDateFrom(), $viewer); | $from = phabricator_datetime($event->getDateFrom(), $viewer); | ||||
$to = phabricator_datetime($event->getDateTo(), $viewer); | $to = phabricator_datetime($event->getDateTo(), $viewer); | ||||
$creator_handle = $handles[$event->getUserPHID()]; | $creator_handle = $handles[$event->getUserPHID()]; | ||||
$name = (strlen($event->getName())) ? | |||||
$event->getName() : $event->getTerseSummary($viewer); | |||||
$color = ($event->getStatus() == PhabricatorCalendarEvent::STATUS_AWAY) | $color = ($event->getStatus() == PhabricatorCalendarEvent::STATUS_AWAY) | ||||
? 'red' | ? 'red' | ||||
: 'yellow'; | : 'yellow'; | ||||
$item = id(new PHUIObjectItemView()) | $item = id(new PHUIObjectItemView()) | ||||
->setHeader($event->getTerseSummary($viewer)) | ->setHeader($name) | ||||
->setHref($href) | ->setHref($href) | ||||
->setBarColor($color) | ->setBarColor($color) | ||||
->addByline(pht('Creator: %s', $creator_handle->renderLink())) | ->addByline(pht('Creator: %s', $creator_handle->renderLink())) | ||||
->addAttribute(pht('From %s to %s', $from, $to)) | ->addAttribute(pht('From %s to %s', $from, $to)) | ||||
->addAttribute(id(new PhutilUTF8StringTruncator()) | ->addAttribute(id(new PhutilUTF8StringTruncator()) | ||||
->setMaximumGlyphs(64) | ->setMaximumGlyphs(64) | ||||
->truncateString($event->getDescription())); | ->truncateString($event->getDescription())); | ||||
$list->addItem($item); | $list->addItem($item); | ||||
} | } | ||||
return $list; | return $list; | ||||
} | } | ||||
} | } |