Skip to content

Commit dcb5eb8

Browse files
author
epriestley
committedMay 27, 2013
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
1 parent 12e9350 commit dcb5eb8

4 files changed

+32
-21
lines changed
 

‎src/applications/paste/controller/PhabricatorPasteController.php

+21-12
Original file line numberDiff line numberDiff line change
@@ -2,35 +2,44 @@
22

33
abstract class PhabricatorPasteController extends PhabricatorController {
44

5-
public function buildSideNavView($filter = null, $for_app = false) {
5+
public function buildSideNavView($for_app = false) {
66
$user = $this->getRequest()->getUser();
77

88
$nav = new AphrontSideNavFilterView();
9-
$nav->setBaseURI(new PhutilURI($this->getApplicationURI('filter/')));
9+
$nav->setBaseURI(new PhutilURI($this->getApplicationURI()));
1010

1111
if ($for_app) {
12-
$nav->addFilter('', pht('Create Paste'),
13-
$this->getApplicationURI('/create/'));
12+
$nav->addFilter('create', pht('Create Paste'));
1413
}
1514

16-
$nav->addLabel(pht('Filters'));
17-
$nav->addFilter('all', pht('All Pastes'));
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());
25+
}
26+
27+
$nav->addFilter('filter/all', pht('All Pastes'));
1828
if ($user->isLoggedIn()) {
19-
$nav->addFilter('my', pht('My Pastes'));
29+
$nav->addFilter('filter/my', pht('My Pastes'));
2030
}
31+
$nav->addFilter('savedqueries', pht('Edit Queries...'));
2132

2233
$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'));
2635

27-
$nav->selectFilter($filter, 'all');
36+
$nav->selectFilter(null);
2837

2938
return $nav;
3039
}
3140

3241
public function buildApplicationMenu() {
33-
return $this->buildSideNavView(null, true)->getMenu();
42+
return $this->buildSideNavView(true)->getMenu();
3443
}
3544

3645
public function buildApplicationCrumbs() {

‎src/applications/paste/controller/PhabricatorPasteListController.php

+8-6
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,8 @@ public function processRequest() {
2929
->setURI('/paste/query/'.$saved->getQueryKey().'/');
3030
}
3131

32-
$nav = $this->buildSideNavView($this->filter);
33-
$filter = $nav->getSelectedFilter();
34-
35-
$saved_query = new PhabricatorSavedQuery();
32+
$nav = $this->buildSideNavView();
3633
$engine = id(new PhabricatorPasteSearchEngine())
37-
->setPasteSearchFilter($filter)
3834
->setPasteSearchUser($request->getUser());
3935

4036
if ($this->queryKey !== null) {
@@ -48,7 +44,13 @@ public function processRequest() {
4844

4945
$query = id(new PhabricatorPasteSearchEngine())
5046
->buildQueryFromSavedQuery($saved_query);
47+
48+
$nav->selectFilter('query/'.$this->queryKey);
49+
$filter = null;
5150
} else {
51+
$filter = $nav->selectFilter('filter/'.$this->filter);
52+
$engine->setPasteSearchFilter($filter);
53+
5254
$saved_query = $engine->buildSavedQueryFromRequest($request);
5355
$query = $engine->buildQueryFromSavedQuery($saved_query);
5456
}
@@ -63,7 +65,7 @@ public function processRequest() {
6365
$list->setPager($pager);
6466
$list->setNoDataString(pht("No results found for this query."));
6567

66-
if ($this->queryKey !== null || $filter == "advanced") {
68+
if ($this->queryKey !== null || $filter == "filter/advanced") {
6769
$form = $engine->buildSearchForm($saved_query);
6870
$nav->appendChild(
6971
array(

‎src/applications/paste/controller/PhabricatorPasteQueriesController.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ public function processRequest() {
77
$request = $this->getRequest();
88
$user = $request->getUser();
99

10-
$nav = $this->buildSideNavView("");
11-
$filter = $nav->getSelectedFilter();
10+
$nav = $this->buildSideNavView();
11+
$nav->selectFilter('savedqueries');
1212

1313
$named_queries = id(new PhabricatorNamedQueryQuery())
1414
->setViewer($user)

‎src/applications/paste/query/PhabricatorPasteSearchEngine.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public function buildSavedQueryFromRequest(AphrontRequest $request) {
2121

2222
$saved = new PhabricatorSavedQuery();
2323

24-
if ($this->filter == "my") {
24+
if ($this->filter == "filter/my") {
2525
$user = $request->getUser();
2626
$saved->setParameter('authorPHIDs', array($user->getPHID()));
2727
} else {

0 commit comments

Comments
 (0)
Failed to load comments.