@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.

Move Countdown rendering to SearchEngine

Summary: Ref T4986.

Test Plan: Viewed app, made a panel.

Reviewers: btrahan

Reviewed By: btrahan

Subscribers: epriestley

Maniphest Tasks: T4986

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

+51 -43
+1 -43
src/applications/countdown/controller/PhabricatorCountdownListController.php
··· 1 1 <?php 2 2 3 3 final class PhabricatorCountdownListController 4 - extends PhabricatorCountdownController 5 - implements PhabricatorApplicationSearchResultsControllerInterface { 4 + extends PhabricatorCountdownController { 6 5 7 6 private $queryKey; 8 7 ··· 24 23 return $this->delegateToController($controller); 25 24 } 26 25 27 - public function renderResultsList( 28 - array $countdowns, 29 - PhabricatorSavedQuery $query) { 30 - assert_instances_of($countdowns, 'PhabricatorCountdown'); 31 - 32 - $viewer = $this->getRequest()->getUser(); 33 - 34 - $this->loadHandles(mpull($countdowns, 'getAuthorPHID')); 35 - 36 - 37 - $list = new PHUIObjectItemListView(); 38 - $list->setUser($viewer); 39 - foreach ($countdowns as $countdown) { 40 - $id = $countdown->getID(); 41 - 42 - $item = id(new PHUIObjectItemView()) 43 - ->setObjectName("C{$id}") 44 - ->setHeader($countdown->getTitle()) 45 - ->setHref($this->getApplicationURI("{$id}/")) 46 - ->addByline( 47 - pht( 48 - 'Created by %s', 49 - $this->getHandle($countdown->getAuthorPHID())->renderLink())); 50 - 51 - $epoch = $countdown->getEpoch(); 52 - if ($epoch >= time()) { 53 - $item->addIcon( 54 - 'none', 55 - pht('Ends %s', phabricator_datetime($epoch, $viewer))); 56 - } else { 57 - $item->addIcon( 58 - 'delete', 59 - pht('Ended %s', phabricator_datetime($epoch, $viewer))); 60 - $item->setDisabled(true); 61 - } 62 - 63 - $list->addItem($item); 64 - } 65 - 66 - return $list; 67 - } 68 26 69 27 }
+50
src/applications/countdown/query/PhabricatorCountdownSearchEngine.php
··· 3 3 final class PhabricatorCountdownSearchEngine 4 4 extends PhabricatorApplicationSearchEngine { 5 5 6 + public function getApplicationClassName() { 7 + return 'PhabricatorApplicationCountdown'; 8 + } 9 + 6 10 public function buildSavedQueryFromRequest(AphrontRequest $request) { 7 11 $saved = new PhabricatorSavedQuery(); 8 12 $saved->setParameter( ··· 93 97 return parent::buildSavedQueryFromBuiltin($query_key); 94 98 } 95 99 100 + 101 + protected function getRequiredHandlePHIDsForResultList( 102 + array $countdowns, 103 + PhabricatorSavedQuery $query) { 104 + return mpull($countdowns, 'getAuthorPHID'); 105 + } 106 + 107 + protected function renderResultList( 108 + array $countdowns, 109 + PhabricatorSavedQuery $query, 110 + array $handles) { 111 + assert_instances_of($countdowns, 'PhabricatorCountdown'); 112 + 113 + $viewer = $this->requireViewer(); 114 + 115 + $list = new PHUIObjectItemListView(); 116 + $list->setUser($viewer); 117 + foreach ($countdowns as $countdown) { 118 + $id = $countdown->getID(); 119 + 120 + $item = id(new PHUIObjectItemView()) 121 + ->setObjectName("C{$id}") 122 + ->setHeader($countdown->getTitle()) 123 + ->setHref($this->getApplicationURI("{$id}/")) 124 + ->addByline( 125 + pht( 126 + 'Created by %s', 127 + $handles[$countdown->getAuthorPHID()]->renderLink())); 128 + 129 + $epoch = $countdown->getEpoch(); 130 + if ($epoch >= time()) { 131 + $item->addIcon( 132 + 'none', 133 + pht('Ends %s', phabricator_datetime($epoch, $viewer))); 134 + } else { 135 + $item->addIcon( 136 + 'delete', 137 + pht('Ended %s', phabricator_datetime($epoch, $viewer))); 138 + $item->setDisabled(true); 139 + } 140 + 141 + $list->addItem($item); 142 + } 143 + 144 + return $list; 145 + } 96 146 }