2017-01-11 21:35:16 +01:00
|
|
|
<?php
|
|
|
|
|
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
|
|
|
final class PhabricatorManageProfileMenuItem
|
2017-01-11 21:35:16 +01:00
|
|
|
extends PhabricatorProfileMenuItem {
|
|
|
|
|
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
|
|
|
const MENUITEMKEY = 'menu.manage';
|
2017-01-11 21:35:16 +01:00
|
|
|
|
|
|
|
public function getMenuItemTypeName() {
|
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
|
|
|
return pht('Manage Menu');
|
2017-01-11 21:35:16 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
private function getDefaultName() {
|
2017-01-31 17:58:33 +01:00
|
|
|
return pht('Edit Menu');
|
2017-01-11 21:35:16 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
public function canHideMenuItem(
|
|
|
|
PhabricatorProfileMenuItemConfiguration $config) {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function canMakeDefault(
|
|
|
|
PhabricatorProfileMenuItemConfiguration $config) {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function getDisplayName(
|
|
|
|
PhabricatorProfileMenuItemConfiguration $config) {
|
|
|
|
$name = $config->getMenuItemProperty('name');
|
|
|
|
|
|
|
|
if (strlen($name)) {
|
|
|
|
return $name;
|
|
|
|
}
|
|
|
|
|
|
|
|
return $this->getDefaultName();
|
|
|
|
}
|
|
|
|
|
|
|
|
public function buildEditEngineFields(
|
|
|
|
PhabricatorProfileMenuItemConfiguration $config) {
|
|
|
|
return array(
|
|
|
|
id(new PhabricatorTextEditField())
|
|
|
|
->setKey('name')
|
|
|
|
->setLabel(pht('Name'))
|
|
|
|
->setPlaceholder($this->getDefaultName())
|
|
|
|
->setValue($config->getMenuItemProperty('name')),
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
protected function newNavigationMenuItems(
|
|
|
|
PhabricatorProfileMenuItemConfiguration $config) {
|
|
|
|
$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
|
|
|
if (!$viewer->isLoggedIn()) {
|
|
|
|
return array();
|
2017-01-11 21:35:16 +01:00
|
|
|
}
|
|
|
|
|
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
|
|
|
$engine = $this->getEngine();
|
|
|
|
$href = $engine->getItemURI('configure/');
|
|
|
|
|
|
|
|
$name = $this->getDisplayName($config);
|
|
|
|
$icon = 'fa-pencil';
|
|
|
|
|
|
|
|
$item = $this->newItem()
|
|
|
|
->setHref($href)
|
|
|
|
->setName($name)
|
|
|
|
->setIcon($icon);
|
|
|
|
|
2017-01-11 21:35:16 +01:00
|
|
|
return array(
|
|
|
|
$item,
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|