diff --git a/src/applications/project/controller/PhabricatorProjectBoardController.php b/src/applications/project/controller/PhabricatorProjectBoardController.php --- a/src/applications/project/controller/PhabricatorProjectBoardController.php +++ b/src/applications/project/controller/PhabricatorProjectBoardController.php @@ -6,7 +6,8 @@ protected function getProfileMenu() { $menu = parent::getProfileMenu(); - $menu->selectFilter(PhabricatorProject::ITEM_WORKBOARD); + $request = $this->getRequest(); + $menu->selectFilter(PhabricatorProject::ITEM_WORKBOARD, null, $request); $menu->addClass('project-board-nav'); return $menu; diff --git a/src/view/layout/AphrontSideNavFilterView.php b/src/view/layout/AphrontSideNavFilterView.php --- a/src/view/layout/AphrontSideNavFilterView.php +++ b/src/view/layout/AphrontSideNavFilterView.php @@ -156,11 +156,25 @@ return $this->baseURI; } - public function selectFilter($key, $default = null) { + public function selectFilter( + $key, + $default = null, + AphrontRequest $request = null) { $this->selectedFilter = $default; if ($this->menu->getItem($key) && strlen($key)) { $this->selectedFilter = $key; } + + if ($request) { + $path = $request->getRequestURI()->getPath(); + foreach ($this->menu->getItems() as $item) { + $is_link = ($item->getType() == PHUIListItemView::TYPE_LINK); + if ($is_link && $item->getHref() == $path) { + $this->selectedFilter = $item->getKey(); + break; + } + } + } return $this->selectedFilter; }