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

Partially refactor paste search.

Summary: Move some search code from the paste application to the search infrastructure.

Test Plan: Check paste searches still work.

Reviewers: epriestley

Reviewed By: epriestley

CC: aran, Korvin, AnhNhan

Maniphest Tasks: T2625

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

authored by

Bryan Cuccioli and committed by
epriestley
0f0c2a6f 72537338

+26 -18
+7 -16
src/applications/paste/controller/PhabricatorPasteListController.php
··· 21 21 $nav = $this->buildSideNavView($this->filter); 22 22 $filter = $nav->getSelectedFilter(); 23 23 24 - switch ($filter) { 25 - case 'my': 26 - $saved_query->setParameter('authorPHIDs', array($user->getPHID())); 27 - $title = pht('My Pastes'); 28 - $nodata = pht("You haven't created any Pastes yet."); 29 - break; 30 - case 'all': 31 - $title = pht('All Pastes'); 32 - $nodata = pht("There are no Pastes yet."); 33 - break; 34 - } 24 + $engine = id(new PhabricatorPasteSearchEngine()) 25 + ->setPasteSearchFilter($filter); 26 + $saved_query = $engine->buildSavedQueryFromRequest($request); 27 + $query = $engine->buildQueryFromSavedQuery($saved_query); 35 28 36 29 $pager = new AphrontCursorPagerView(); 37 30 $pager->readFromRequest($request); 38 - $engine = new PhabricatorPasteSearchEngine(); 39 - $query = $engine->buildQueryFromSavedQuery($saved_query); 40 31 $pastes = $query->setViewer($request->getUser()) 41 32 ->needContent(true) 42 33 ->executeWithCursorPager($pager); 43 34 44 35 $list = $this->buildPasteList($pastes); 45 36 $list->setPager($pager); 46 - $list->setNoDataString($nodata); 37 + $list->setNoDataString(pht("No results found for this query.")); 47 38 48 39 $nav->appendChild( 49 40 array( ··· 54 45 ->buildApplicationCrumbs($nav) 55 46 ->addCrumb( 56 47 id(new PhabricatorCrumbView()) 57 - ->setName($title) 48 + ->setName(pht("Pastes")) 58 49 ->setHref($this->getApplicationURI('filter/'.$filter.'/'))); 59 50 60 51 $nav->setCrumbs($crumbs); ··· 62 53 return $this->buildApplicationPage( 63 54 $nav, 64 55 array( 65 - 'title' => $title, 56 + 'title' => pht("Pastes"), 66 57 'device' => true, 67 58 'dust' => true, 68 59 ));
+19 -2
src/applications/paste/query/PhabricatorPasteSearchEngine.php
··· 8 8 final class PhabricatorPasteSearchEngine 9 9 extends PhabricatorApplicationSearchEngine { 10 10 11 + protected $filter; 12 + 11 13 /** 12 14 * Create a saved query object from the request. 13 15 * ··· 15 17 * @return The saved query that is built. 16 18 */ 17 19 public function buildSavedQueryFromRequest(AphrontRequest $request) { 18 - $query = new PhabricatorSavedQuery(); 20 + 21 + $saved = new PhabricatorSavedQuery(); 22 + 23 + if ($this->filter == "my") { 24 + $user = $request->getUser(); 25 + $saved->setParameter('authorPHIDs', array($user->getPHID())); 26 + } 19 27 20 - return $query; 28 + return $saved; 21 29 } 22 30 23 31 /** ··· 43 51 * @return void 44 52 */ 45 53 public function buildSearchForm(PhabricatorSavedQuery $saved_query) { 54 + } 55 + 56 + public function setPasteSearchFilter($filter) { 57 + $this->filter = $filter; 58 + return $this; 59 + } 60 + 61 + public function getPasteSearchFilter() { 62 + return $this->filter; 46 63 } 47 64 48 65 }