2017-01-11 21:35:16 +01:00
|
|
|
<?php
|
|
|
|
|
|
|
|
final class PhabricatorHomeMenuItemController
|
|
|
|
extends PhabricatorHomeController {
|
|
|
|
|
Replace ProfileMenu bugs with different bugs
Summary:
Ref T12174. This fixes more bugs than it creates, I think:
- Dashboards now show the whole menu.
- Project and home items now show selected state correctly.
- The "choose global vs personal" thing is now part of MenuEngine, and the same code builds it for Home and Favorites.
- Home now handles defaults correctly, I think.
Maybe regression/bad/still buggy?:
- Mobile home is now whatever the default thing was, not the menu?
- Title for dashboard content or other items that render their own content is incorrectly always "Configure Menu" (this was preexisting).
Test Plan:
- Created, edited, reordered, disabled, deleted and pinned personal and global items on home, favorites, and projects.
- Also checked User profiles.
Reviewers: chad
Reviewed By: chad
Maniphest Tasks: T12174
Differential Revision: https://secure.phabricator.com/D17273
2017-01-31 19:48:03 +01:00
|
|
|
public function shouldAllowPublic() {
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function isGlobalDragAndDropUploadEnabled() {
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
2017-01-11 21:35:16 +01:00
|
|
|
public function handleRequest(AphrontRequest $request) {
|
|
|
|
$viewer = $this->getViewer();
|
Replace ProfileMenu bugs with different bugs
Summary:
Ref T12174. This fixes more bugs than it creates, I think:
- Dashboards now show the whole menu.
- Project and home items now show selected state correctly.
- The "choose global vs personal" thing is now part of MenuEngine, and the same code builds it for Home and Favorites.
- Home now handles defaults correctly, I think.
Maybe regression/bad/still buggy?:
- Mobile home is now whatever the default thing was, not the menu?
- Title for dashboard content or other items that render their own content is incorrectly always "Configure Menu" (this was preexisting).
Test Plan:
- Created, edited, reordered, disabled, deleted and pinned personal and global items on home, favorites, and projects.
- Also checked User profiles.
Reviewers: chad
Reviewed By: chad
Maniphest Tasks: T12174
Differential Revision: https://secure.phabricator.com/D17273
2017-01-31 19:48:03 +01:00
|
|
|
|
2017-02-01 19:16:23 +01:00
|
|
|
// Test if we should show mobile users the menu or the page content:
|
|
|
|
// if you visit "/", you just get the menu. If you visit "/home/", you
|
|
|
|
// get the content.
|
|
|
|
$is_content = $request->getURIData('content');
|
|
|
|
|
2017-01-11 21:35:16 +01:00
|
|
|
$application = 'PhabricatorHomeApplication';
|
|
|
|
$home_app = id(new PhabricatorApplicationQuery())
|
|
|
|
->setViewer($viewer)
|
|
|
|
->withClasses(array($application))
|
|
|
|
->withInstalled(true)
|
|
|
|
->executeOne();
|
|
|
|
|
|
|
|
$engine = id(new PhabricatorHomeProfileMenuEngine())
|
|
|
|
->setProfileObject($home_app)
|
2017-01-31 20:36:54 +01:00
|
|
|
->setCustomPHID($viewer->getPHID())
|
2017-02-01 19:16:23 +01:00
|
|
|
->setController($this)
|
|
|
|
->setShowContentCrumbs(false);
|
|
|
|
|
|
|
|
if (!$is_content) {
|
|
|
|
$engine->addContentPageClass('phabricator-home');
|
|
|
|
}
|
2017-01-11 21:35:16 +01:00
|
|
|
|
|
|
|
return $engine->buildResponse();
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|