1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-09-20 09:18:48 +02:00

Make Maniphest use FilterNavView instead of NavView

Summary: Share more code; reduce the number of ad-hoc versions of this rendering
loop.

Test Plan: Clicked all the filters.

Reviewers: btrahan, jungejason

Reviewed By: jungejason

CC: aran, jungejason

Differential Revision: 1247
This commit is contained in:
epriestley 2011-12-20 14:36:54 -08:00
parent d5dedda843
commit 540400a806
2 changed files with 15 additions and 41 deletions

View file

@ -33,7 +33,6 @@ class ManiphestTaskListController extends ManiphestController {
$request = $this->getRequest(); $request = $this->getRequest();
$user = $request->getUser(); $user = $request->getUser();
$uri = $request->getRequestURI();
if ($request->isFormPost()) { if ($request->isFormPost()) {
// Redirect to GET so URIs can be copy/pasted. // Redirect to GET so URIs can be copy/pasted.
@ -55,23 +54,21 @@ class ManiphestTaskListController extends ManiphestController {
return id(new AphrontRedirectResponse())->setURI($uri); return id(new AphrontRedirectResponse())->setURI($uri);
} }
$views = array( $nav = new AphrontSideNavFilterView();
'User Tasks', $nav->setBaseURI(new PhutilURI('/maniphest/view/'));
'action' => 'Assigned', $nav->addLabel('User Tasks');
'created' => 'Created', $nav->addFilter('action', 'Assigned');
'subscribed' => 'Subscribed', $nav->addFilter('created', 'Created');
'triage' => 'Need Triage', $nav->addFilter('subscribed', 'Subscribed');
'<hr />', $nav->addFilter('triage', 'Need Triage');
'All Tasks', $nav->addSpacer();
'alltriage' => 'Need Triage', $nav->addLabel('All Tasks');
'all' => 'All Tasks', $nav->addFilter('alltriage', 'Need Triage');
'<hr />', $nav->addFilter('all', 'All Tasks');
'custom' => 'Custom', $nav->addSpacer();
); $nav->addFilter('custom', 'Custom');
if (empty($views[$this->view])) { $this->view = $nav->selectFilter($this->view, 'action');
$this->view = 'action';
}
$has_filter = array( $has_filter = array(
'action' => true, 'action' => true,
@ -80,29 +77,6 @@ class ManiphestTaskListController extends ManiphestController {
'triage' => true, 'triage' => true,
); );
$nav = new AphrontSideNavView();
foreach ($views as $view => $name) {
if (is_integer($view)) {
$nav->addNavItem(
phutil_render_tag(
'span',
array(),
$name));
} else {
$uri->setPath('/maniphest/view/'.$view.'/');
$nav->addNavItem(
phutil_render_tag(
'a',
array(
'href' => $uri->alter('page', null),
'class' => ($this->view == $view)
? 'aphront-side-nav-selected'
: null,
),
phutil_escape_html($name)));
}
}
list($status_map, $status_links) = $this->renderStatusLinks(); list($status_map, $status_links) = $this->renderStatusLinks();
list($grouping, $group_links) = $this->renderGroupLinks(); list($grouping, $group_links) = $this->renderGroupLinks();
list($order, $order_links) = $this->renderOrderLinks(); list($order, $order_links) = $this->renderOrderLinks();

View file

@ -21,7 +21,7 @@ phutil_require_module('phabricator', 'view/form/control/text');
phutil_require_module('phabricator', 'view/form/control/togglebuttons'); phutil_require_module('phabricator', 'view/form/control/togglebuttons');
phutil_require_module('phabricator', 'view/form/control/tokenizer'); phutil_require_module('phabricator', 'view/form/control/tokenizer');
phutil_require_module('phabricator', 'view/layout/listfilter'); phutil_require_module('phabricator', 'view/layout/listfilter');
phutil_require_module('phabricator', 'view/layout/sidenav'); phutil_require_module('phabricator', 'view/layout/sidenavfilter');
phutil_require_module('phutil', 'markup'); phutil_require_module('phutil', 'markup');
phutil_require_module('phutil', 'parser/uri'); phutil_require_module('phutil', 'parser/uri');