Changeset View
Changeset View
Standalone View
Standalone View
src/applications/project/controller/PhabricatorProjectController.php
Show First 20 Lines • Show All 185 Lines • ▼ Show 20 Lines | abstract class PhabricatorProjectController extends PhabricatorController { | ||||
final protected function newNavigation( | final protected function newNavigation( | ||||
PhabricatorProject $project, | PhabricatorProject $project, | ||||
$item_identifier) { | $item_identifier) { | ||||
$engine = $this->getProfileMenuEngine(); | $engine = $this->getProfileMenuEngine(); | ||||
$view_list = $engine->newProfileMenuItemViewList(); | $view_list = $engine->newProfileMenuItemViewList(); | ||||
// See PHI1247. If the "Workboard" item is removed from the menu, we will | |||||
// not be able to select it. This can happen if a user removes the item, | |||||
// then manually navigate to the workboard URI (or follows an older link). | |||||
// In this case, just render the menu with no selected item. | |||||
if ($view_list->getViewsWithItemIdentifier($item_identifier)) { | |||||
$view_list->setSelectedViewWithItemIdentifier($item_identifier); | $view_list->setSelectedViewWithItemIdentifier($item_identifier); | ||||
} | |||||
$navigation = $view_list->newNavigationView(); | $navigation = $view_list->newNavigationView(); | ||||
if ($item_identifier === PhabricatorProject::ITEM_WORKBOARD) { | if ($item_identifier === PhabricatorProject::ITEM_WORKBOARD) { | ||||
$navigation->addClass('project-board-nav'); | $navigation->addClass('project-board-nav'); | ||||
} | } | ||||
return $navigation; | return $navigation; | ||||
} | } | ||||
} | } |