mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-23 14:00:56 +01:00
Disable "Subprojects" menu item for milestone projects
Summary: Ref T10010. Milestones can't have subprojects, so this item isn't very useful. I think there is also an argument for disabling "Members", but that panel is a little less useless and explains the membership rule, so I'm less certain about removing it. I do generally lean toward removing it at some point, though. Test Plan: - Viewed a milestone, no "Subprojects" menu item. - Viewed a normal project, saw item. - Edited both menus, saw consistent UI. Reviewers: chad Reviewed By: chad Maniphest Tasks: T10010 Differential Revision: https://secure.phabricator.com/D15200
This commit is contained in:
parent
7550557e44
commit
f097c9c595
4 changed files with 24 additions and 0 deletions
|
@ -13,6 +13,14 @@ final class PhabricatorProjectSubprojectsProfilePanel
|
|||
return pht('Subprojects');
|
||||
}
|
||||
|
||||
public function shouldEnableForObject($object) {
|
||||
if ($object->isMilestone()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public function getDisplayName(
|
||||
PhabricatorProfilePanelConfiguration $config) {
|
||||
$name = $config->getPanelProperty('name');
|
||||
|
|
|
@ -239,6 +239,10 @@ abstract class PhabricatorProfilePanelEngine extends Phobject {
|
|||
// Merge the stored panels into the builtin panels. If a builtin panel has
|
||||
// a stored version, replace the defaults with the stored changes.
|
||||
foreach ($stored_panels as $stored_panel) {
|
||||
if (!$stored_panel->shouldEnableForObject($object)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$builtin_key = $stored_panel->getBuiltinKey();
|
||||
if ($builtin_key !== null) {
|
||||
// If this builtin actually exists, replace the builtin with the
|
||||
|
@ -341,6 +345,10 @@ abstract class PhabricatorProfilePanelEngine extends Phobject {
|
|||
->attachProfileObject($object)
|
||||
->setPanelOrder($order);
|
||||
|
||||
if (!$builtin->shouldEnableForObject($object)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$map[$builtin_key] = $builtin;
|
||||
|
||||
$order++;
|
||||
|
|
|
@ -30,6 +30,10 @@ abstract class PhabricatorProfilePanel extends Phobject {
|
|||
return false;
|
||||
}
|
||||
|
||||
public function shouldEnableForObject($object) {
|
||||
return true;
|
||||
}
|
||||
|
||||
public function canHidePanel(
|
||||
PhabricatorProfilePanelConfiguration $config) {
|
||||
return true;
|
||||
|
|
|
@ -109,6 +109,10 @@ final class PhabricatorProfilePanelConfiguration
|
|||
return $this->getPanel()->canHidePanel($this);
|
||||
}
|
||||
|
||||
public function shouldEnableForObject($object) {
|
||||
return $this->getPanel()->shouldEnableForObject($object);
|
||||
}
|
||||
|
||||
public function getSortKey() {
|
||||
$order = $this->getPanelOrder();
|
||||
if ($order === null) {
|
||||
|
|
Loading…
Reference in a new issue