diff --git a/src/applications/calendar/query/PhabricatorCalendarEventSearchEngine.php b/src/applications/calendar/query/PhabricatorCalendarEventSearchEngine.php index d2898177ad..cac6c39252 100644 --- a/src/applications/calendar/query/PhabricatorCalendarEventSearchEngine.php +++ b/src/applications/calendar/query/PhabricatorCalendarEventSearchEngine.php @@ -313,17 +313,31 @@ final class PhabricatorCalendarEventSearchEngine $list = new PHUIObjectItemListView(); foreach ($events as $event) { $from = phabricator_datetime($event->getDateFrom(), $viewer); - $to = phabricator_datetime($event->getDateTo(), $viewer); + $duration = ''; $creator_handle = $handles[$event->getUserPHID()]; + $attendees = array(); + foreach ($event->getInvitees() as $invitee) { + $attendees[] = $invitee->getInviteePHID(); + } + + $attendees = pht( + 'Attending: %s', + $viewer->renderHandleList($attendees) + ->setAsInline(1) + ->render()); + + if (strlen($event->getDuration()) > 0) { + $duration = pht( + 'Duration: %s', + $event->getDuration()); + } + $item = id(new PHUIObjectItemView()) - ->setHeader($event->getName()) - ->setHref($event->getURI()) - ->addByline(pht('Creator: %s', $creator_handle->renderLink())) - ->addAttribute(pht('From %s to %s', $from, $to)) - ->addAttribute(id(new PhutilUTF8StringTruncator()) - ->setMaximumGlyphs(64) - ->truncateString($event->getDescription())); + ->setHeader($viewer->renderHandle($event->getPHID())->render()) + ->addAttribute($attendees) + ->addIcon('none', $from) + ->addIcon('none', $duration); $list->addItem($item); } diff --git a/src/applications/calendar/storage/PhabricatorCalendarEvent.php b/src/applications/calendar/storage/PhabricatorCalendarEvent.php index 2b3fc4bdb8..874c62fc4b 100644 --- a/src/applications/calendar/storage/PhabricatorCalendarEvent.php +++ b/src/applications/calendar/storage/PhabricatorCalendarEvent.php @@ -373,6 +373,29 @@ final class PhabricatorCalendarEvent extends PhabricatorCalendarDAO return false; } + public function getDuration() { + $seconds = $this->dateTo - $this->dateFrom; + $minutes = round($seconds / 60, 1); + $hours = round($minutes / 60, 3); + $days = round($hours / 24, 2); + + $duration = ''; + + if ($days >= 1) { + return pht( + '%s day(s)', + round($days, 1)); + } else if ($hours >= 1) { + return pht( + '%s hour(s)', + round($hours, 1)); + } else if ($minutes >= 1) { + return pht( + '%s minute(s)', + round($minutes, 0)); + } + } + /* -( Markup Interface )--------------------------------------------------- */