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

Slightly improve saved query UX

Summary:
Ref T2625.

- Show saved queries in the left nav.
- Highlight the correct stuff in the left nav.

Test Plan: Clicked all left-nav stuff.

Reviewers: btrahan, blc

Reviewed By: btrahan

CC: aran

Maniphest Tasks: T2625

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

+32 -21
+21 -12
src/applications/paste/controller/PhabricatorPasteController.php
··· 2 2 3 3 abstract class PhabricatorPasteController extends PhabricatorController { 4 4 5 - public function buildSideNavView($filter = null, $for_app = false) { 5 + public function buildSideNavView($for_app = false) { 6 6 $user = $this->getRequest()->getUser(); 7 7 8 8 $nav = new AphrontSideNavFilterView(); 9 - $nav->setBaseURI(new PhutilURI($this->getApplicationURI('filter/'))); 9 + $nav->setBaseURI(new PhutilURI($this->getApplicationURI())); 10 10 11 11 if ($for_app) { 12 - $nav->addFilter('', pht('Create Paste'), 13 - $this->getApplicationURI('/create/')); 12 + $nav->addFilter('create', pht('Create Paste')); 13 + } 14 + 15 + $nav->addLabel(pht('Queries')); 16 + 17 + $named_queries = id(new PhabricatorNamedQueryQuery()) 18 + ->setViewer($user) 19 + ->withUserPHIDs(array($user->getPHID())) 20 + ->withEngineClassNames(array('PhabricatorPasteSearchEngine')) 21 + ->execute(); 22 + 23 + foreach ($named_queries as $query) { 24 + $nav->addFilter('query/'.$query->getQueryKey(), $query->getQueryName()); 14 25 } 15 26 16 - $nav->addLabel(pht('Filters')); 17 - $nav->addFilter('all', pht('All Pastes')); 27 + $nav->addFilter('filter/all', pht('All Pastes')); 18 28 if ($user->isLoggedIn()) { 19 - $nav->addFilter('my', pht('My Pastes')); 29 + $nav->addFilter('filter/my', pht('My Pastes')); 20 30 } 31 + $nav->addFilter('savedqueries', pht('Edit Queries...')); 21 32 22 33 $nav->addLabel(pht('Search')); 23 - $nav->addFilter('advanced', pht('Advanced Search')); 24 - $nav->addFilter('', pht('Saved Queries'), 25 - $this->getApplicationURI('/savedqueries/')); 34 + $nav->addFilter('filter/advanced', pht('Advanced Search')); 26 35 27 - $nav->selectFilter($filter, 'all'); 36 + $nav->selectFilter(null); 28 37 29 38 return $nav; 30 39 } 31 40 32 41 public function buildApplicationMenu() { 33 - return $this->buildSideNavView(null, true)->getMenu(); 42 + return $this->buildSideNavView(true)->getMenu(); 34 43 } 35 44 36 45 public function buildApplicationCrumbs() {
+8 -6
src/applications/paste/controller/PhabricatorPasteListController.php
··· 29 29 ->setURI('/paste/query/'.$saved->getQueryKey().'/'); 30 30 } 31 31 32 - $nav = $this->buildSideNavView($this->filter); 33 - $filter = $nav->getSelectedFilter(); 34 - 35 - $saved_query = new PhabricatorSavedQuery(); 32 + $nav = $this->buildSideNavView(); 36 33 $engine = id(new PhabricatorPasteSearchEngine()) 37 - ->setPasteSearchFilter($filter) 38 34 ->setPasteSearchUser($request->getUser()); 39 35 40 36 if ($this->queryKey !== null) { ··· 48 44 49 45 $query = id(new PhabricatorPasteSearchEngine()) 50 46 ->buildQueryFromSavedQuery($saved_query); 47 + 48 + $nav->selectFilter('query/'.$this->queryKey); 49 + $filter = null; 51 50 } else { 51 + $filter = $nav->selectFilter('filter/'.$this->filter); 52 + $engine->setPasteSearchFilter($filter); 53 + 52 54 $saved_query = $engine->buildSavedQueryFromRequest($request); 53 55 $query = $engine->buildQueryFromSavedQuery($saved_query); 54 56 } ··· 63 65 $list->setPager($pager); 64 66 $list->setNoDataString(pht("No results found for this query.")); 65 67 66 - if ($this->queryKey !== null || $filter == "advanced") { 68 + if ($this->queryKey !== null || $filter == "filter/advanced") { 67 69 $form = $engine->buildSearchForm($saved_query); 68 70 $nav->appendChild( 69 71 array(
+2 -2
src/applications/paste/controller/PhabricatorPasteQueriesController.php
··· 7 7 $request = $this->getRequest(); 8 8 $user = $request->getUser(); 9 9 10 - $nav = $this->buildSideNavView(""); 11 - $filter = $nav->getSelectedFilter(); 10 + $nav = $this->buildSideNavView(); 11 + $nav->selectFilter('savedqueries'); 12 12 13 13 $named_queries = id(new PhabricatorNamedQueryQuery()) 14 14 ->setViewer($user)
+1 -1
src/applications/paste/query/PhabricatorPasteSearchEngine.php
··· 21 21 22 22 $saved = new PhabricatorSavedQuery(); 23 23 24 - if ($this->filter == "my") { 24 + if ($this->filter == "filter/my") { 25 25 $user = $request->getUser(); 26 26 $saved->setParameter('authorPHIDs', array($user->getPHID())); 27 27 } else {