Automatically build mobile menus from navigation, and clean up external ProfileMenu API

Summary:
Depends on D20355. Ref T13275. Ref T13247. Currently, "Hamburger" menus are not automatically built from navigation menus. However, this is (I'm almost completely sure?) a reasonable and appropriate default behavior, and saves us some code around profile menus.

With this rule in place, we can remove `setApplicationMenu()` and `getApplicationMenu()` from `StandardPageView`, since they have no callers.

This also updates a lot of profile menu callsites to a new API which is added in the next change.

Test Plan: See the next two changes.

Reviewers: amckinley

Reviewed By: amckinley

Maniphest Tasks: T13275, T13247

Differential Revision: https://secure.phabricator.com/D20356
This commit is contained in:
epriestley
2019-03-31 11:48:09 -07:00
parent 47bf382435
commit 971a272bf6
18 changed files with 91 additions and 154 deletions

View File

@@ -172,7 +172,9 @@ final class PhabricatorProjectBoardViewController
return $content;
}
$nav = $this->newWorkboardProfileMenu();
$nav = $this->newNavigation(
$project,
PhabricatorProject::ITEM_WORKBOARD);
$crumbs = $this->buildApplicationCrumbs();
$crumbs->addTextCrumb(pht('Workboard'));
@@ -719,7 +721,9 @@ final class PhabricatorProjectBoardViewController
->appendChild($board)
->addClass('project-board-wrapper');
$nav = $this->newWorkboardProfileMenu();
$nav = $this->newNavigation(
$project,
PhabricatorProject::ITEM_WORKBOARD);
$divider = id(new PHUIListItemView())
->setType(PHUIListItemView::TYPE_DIVIDER);
@@ -1503,15 +1507,4 @@ final class PhabricatorProjectBoardViewController
->addCancelButton($profile_uri);
}
private function newWorkboardProfileMenu() {
$default_item = id(new PhabricatorProfileMenuItemConfiguration())
->setBuiltinKey(PhabricatorProject::ITEM_WORKBOARD);
$menu = parent::getProfileMenu($default_item);
$menu->addClass('project-board-nav');
return $menu;
}
}