@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Make upcoming events view more viewer-oriented

Summary:
Ref T11326. Try to make this a little more useful:

- Don't show entire attendee list (not useful?)
- Show host (useful?)
- Show your own status prominently (attending vs declined vs invited).
- Show cancelled events prominently.

Test Plan: {F1723550}

Reviewers: chad

Reviewed By: chad

Maniphest Tasks: T11326

Differential Revision: https://secure.phabricator.com/D16299

+33 -18
+33 -18
src/applications/calendar/query/PhabricatorCalendarEventSearchEngine.php
··· 264 264 $list = new PHUIObjectItemListView(); 265 265 266 266 foreach ($events as $event) { 267 - $attendees = array(); 268 - 269 - foreach ($event->getInvitees() as $invitee) { 270 - $status_attending = PhabricatorCalendarEventInvitee::STATUS_ATTENDING; 271 - if ($invitee->getStatus() === $status_attending) { 272 - $attendees[] = $invitee->getInviteePHID(); 273 - } 274 - } 275 - 276 267 if ($event->getIsGhostEvent()) { 277 268 $monogram = $event->getParentEvent()->getMonogram(); 278 269 $index = $event->getSequenceIndex(); ··· 286 277 ->setObject($event) 287 278 ->setObjectName($monogram) 288 279 ->setHeader($event->getName()) 289 - ->setHref($event->getURI()) 290 - ->addAttribute($event->renderEventDate($viewer, false)); 280 + ->setHref($event->getURI()); 291 281 292 - if ($attendees) { 293 - $attending = pht( 294 - 'Attending: %s', 295 - $viewer->renderHandleList($attendees) 296 - ->setAsInline(1) 297 - ->render()); 282 + $item->addAttribute($event->renderEventDate($viewer, false)); 298 283 299 - $item->addAttribute($attending); 284 + if ($event->isCancelledEvent()) { 285 + $status_icon = 'fa-times red'; 286 + $status_label = pht('Cancelled'); 287 + $item->setDisabled(true); 288 + } else if ($viewer->isLoggedIn()) { 289 + $status = $event->getUserInviteStatus($viewer->getPHID()); 290 + switch ($status) { 291 + case PhabricatorCalendarEventInvitee::STATUS_ATTENDING: 292 + $status_icon = 'fa-check-circle green'; 293 + $status_label = pht('Attending'); 294 + break; 295 + case PhabricatorCalendarEventInvitee::STATUS_INVITED: 296 + $status_icon = 'fa-user-plus green'; 297 + $status_label = pht('Invited'); 298 + break; 299 + case PhabricatorCalendarEventInvitee::STATUS_DECLINED: 300 + $status_icon = 'fa-times grey'; 301 + $status_label = pht('Declined'); 302 + break; 303 + default: 304 + $status_icon = $event->getIcon().' grey'; 305 + $status_label = null; 306 + break; 307 + } 300 308 } 309 + 310 + $item->setStatusIcon($status_icon, $status_label); 311 + 312 + $host = pht( 313 + 'Hosted by %s', 314 + $viewer->renderHandle($event->getHostPHID())); 315 + $item->addByline($host); 301 316 302 317 $list->addItem($item); 303 318 }