diff --git a/conf/default.conf.php b/conf/default.conf.php index 0a5a000a4d..c6ef8d54df 100644 --- a/conf/default.conf.php +++ b/conf/default.conf.php @@ -1083,6 +1083,7 @@ return array( // -- Maniphest ------------------------------------------------------------- // + // Deprecated, use 'phabricator.uninstalled-applications' instead. 'maniphest.enabled' => true, // Array of custom fields for Maniphest tasks. For details on adding custom @@ -1100,6 +1101,7 @@ return array( // -- Phriction ------------------------------------------------------------- // + // Deprecated, use 'phabricator.uninstalled-applications' instead. 'phriction.enabled' => true, // -- Phame ----------------------------------------------------------------- // diff --git a/src/applications/base/PhabricatorApplication.php b/src/applications/base/PhabricatorApplication.php index 707f0476cc..070ef0c84b 100644 --- a/src/applications/base/PhabricatorApplication.php +++ b/src/applications/base/PhabricatorApplication.php @@ -58,10 +58,6 @@ abstract class PhabricatorApplication { return $this->getName().' Application'; } - public function isEnabled() { - return true; - } - public function isInstalled() { if (!$this->canUninstall()) { return true; @@ -78,6 +74,10 @@ abstract class PhabricatorApplication { return empty($uninstalled[get_class($this)]); } + public static function isClassInstalled($class) { + return self::getByClass($class)->isInstalled(); + } + public function isBeta() { return false; } @@ -283,10 +283,6 @@ abstract class PhabricatorApplication { continue; } - if (!$app->isEnabled()) { - continue; - } - $apps[] = $app; } diff --git a/src/applications/differential/controller/DifferentialRevisionViewController.php b/src/applications/differential/controller/DifferentialRevisionViewController.php index 3eb4e946cf..841b494445 100644 --- a/src/applications/differential/controller/DifferentialRevisionViewController.php +++ b/src/applications/differential/controller/DifferentialRevisionViewController.php @@ -529,7 +529,8 @@ final class DifferentialRevisionViewController extends DifferentialController { 'sigil' => 'workflow', ); - if (PhabricatorEnv::getEnvConfig('maniphest.enabled')) { + $maniphest = 'PhabricatorApplicationManiphest'; + if (PhabricatorApplication::isClassInstalled($maniphest)) { $links[] = array( 'icon' => 'attach', 'name' => pht('Edit Maniphest Tasks'), diff --git a/src/applications/differential/field/specification/DifferentialFreeformFieldSpecification.php b/src/applications/differential/field/specification/DifferentialFreeformFieldSpecification.php index 2bd242c24a..5e663c5bef 100644 --- a/src/applications/differential/field/specification/DifferentialFreeformFieldSpecification.php +++ b/src/applications/differential/field/specification/DifferentialFreeformFieldSpecification.php @@ -4,7 +4,8 @@ abstract class DifferentialFreeformFieldSpecification extends DifferentialFieldSpecification { private function findMentionedTasks($message) { - if (!PhabricatorEnv::getEnvConfig('maniphest.enabled')) { + $maniphest = 'PhabricatorApplicationManiphest'; + if (!PhabricatorApplication::isClassInstalled($maniphest)) { return array(); } diff --git a/src/applications/differential/field/specification/DifferentialManiphestTasksFieldSpecification.php b/src/applications/differential/field/specification/DifferentialManiphestTasksFieldSpecification.php index cfcea7208a..88f24334be 100644 --- a/src/applications/differential/field/specification/DifferentialManiphestTasksFieldSpecification.php +++ b/src/applications/differential/field/specification/DifferentialManiphestTasksFieldSpecification.php @@ -7,7 +7,8 @@ final class DifferentialManiphestTasksFieldSpecification private $maniphestTasks = array(); public function shouldAppearOnRevisionView() { - return PhabricatorEnv::getEnvConfig('maniphest.enabled'); + return PhabricatorApplication::isClassInstalled( + 'PhabricatorApplicationManiphest'); } public function getRequiredHandlePHIDsForRevisionView() { @@ -84,7 +85,7 @@ final class DifferentialManiphestTasksFieldSpecification } public function shouldAppearOnCommitMessage() { - return PhabricatorEnv::getEnvConfig('maniphest.enabled'); + return $this->shouldAppearOnRevisionView(); } public function getCommitMessageKey() { diff --git a/src/applications/diffusion/controller/DiffusionCommitController.php b/src/applications/diffusion/controller/DiffusionCommitController.php index ef1ada2f3e..9b5d4da7b8 100644 --- a/src/applications/diffusion/controller/DiffusionCommitController.php +++ b/src/applications/diffusion/controller/DiffusionCommitController.php @@ -854,7 +854,8 @@ final class DiffusionCommitController extends DiffusionController { require_celerity_resource('phabricator-object-selector-css'); require_celerity_resource('javelin-behavior-phabricator-object-selector'); - if (PhabricatorEnv::getEnvConfig('maniphest.enabled')) { + $maniphest = 'PhabricatorApplicationManiphest'; + if (PhabricatorApplication::isClassInstalled($maniphest)) { $action = id(new PhabricatorActionView()) ->setName('Edit Maniphest Tasks') ->setIcon('attach') diff --git a/src/applications/directory/controller/PhabricatorDirectoryMainController.php b/src/applications/directory/controller/PhabricatorDirectoryMainController.php index 622cc1bcff..0fa89e9052 100644 --- a/src/applications/directory/controller/PhabricatorDirectoryMainController.php +++ b/src/applications/directory/controller/PhabricatorDirectoryMainController.php @@ -30,7 +30,8 @@ final class PhabricatorDirectoryMainController private function buildMainResponse($nav, array $projects) { assert_instances_of($projects, 'PhabricatorProject'); - if (PhabricatorEnv::getEnvConfig('maniphest.enabled')) { + $maniphest = 'PhabricatorApplicationManiphest'; + if (PhabricatorApplication::isClassInstalled($maniphest)) { $unbreak_panel = $this->buildUnbreakNowPanel(); $triage_panel = $this->buildNeedsTriagePanel($projects); $tasks_panel = $this->buildTasksPanel(); diff --git a/src/applications/maniphest/application/PhabricatorApplicationManiphest.php b/src/applications/maniphest/application/PhabricatorApplicationManiphest.php index 7d1e1d7e4f..a9fe4ec544 100644 --- a/src/applications/maniphest/application/PhabricatorApplicationManiphest.php +++ b/src/applications/maniphest/application/PhabricatorApplicationManiphest.php @@ -10,8 +10,11 @@ final class PhabricatorApplicationManiphest extends PhabricatorApplication { return '/maniphest/'; } - public function isEnabled() { - return PhabricatorEnv::getEnvConfig('maniphest.enabled'); + public function isInstalled() { + if (!PhabricatorEnv::getEnvConfig('maniphest.enabled')) { + return false; + } + return parent::isInstalled(); } public function getIconName() { diff --git a/src/applications/maniphest/config/PhabricatorManiphestConfigOptions.php b/src/applications/maniphest/config/PhabricatorManiphestConfigOptions.php index 97f91716d0..b8e64645d2 100644 --- a/src/applications/maniphest/config/PhabricatorManiphestConfigOptions.php +++ b/src/applications/maniphest/config/PhabricatorManiphestConfigOptions.php @@ -14,7 +14,8 @@ final class PhabricatorManiphestConfigOptions public function getOptions() { return array( $this->newOption('maniphest.enabled', 'bool', true) - ->setDescription(pht("Enable Maniphest")), + ->setDescription(pht( + "Deprecated, use 'phabricator.uninstalled-applications' instead.")), $this->newOption('maniphest.custom-fields', 'wild', array()) ->setSummary(pht("Custom Maniphest fields.")) ->setDescription( diff --git a/src/applications/phriction/application/PhabricatorApplicationPhriction.php b/src/applications/phriction/application/PhabricatorApplicationPhriction.php index bf0423b237..9ee98ff27b 100644 --- a/src/applications/phriction/application/PhabricatorApplicationPhriction.php +++ b/src/applications/phriction/application/PhabricatorApplicationPhriction.php @@ -18,8 +18,11 @@ final class PhabricatorApplicationPhriction extends PhabricatorApplication { return PhabricatorEnv::getDoclink('article/Phriction_User_Guide.html'); } - public function isEnabled() { - return PhabricatorEnv::getEnvConfig('phriction.enabled'); + public function isInstalled() { + if (!PhabricatorEnv::getEnvConfig('phriction.enabled')) { + return false; + } + return parent::isInstalled(); } public function getTitleGlyph() { diff --git a/src/applications/phriction/config/PhabricatorPhrictionConfigOptions.php b/src/applications/phriction/config/PhabricatorPhrictionConfigOptions.php index d9a2da237a..a8e80e5667 100644 --- a/src/applications/phriction/config/PhabricatorPhrictionConfigOptions.php +++ b/src/applications/phriction/config/PhabricatorPhrictionConfigOptions.php @@ -19,7 +19,8 @@ final class PhabricatorPhrictionConfigOptions pht("Enable Phriction"), pht("Disable Phriction"), )) - ->setDescription(pht("Enable or disable Phriction.")), + ->setDescription(pht( + "Deprecated, use 'phabricator.uninstalled-applications' instead.")), $this->newOption( 'metamta.phriction.subject-prefix', 'string', '[Phriction]') ->setDescription(pht("Subject prefix for Phriction email.")), diff --git a/src/applications/settings/panel/PhabricatorSettingsPanelConpherencePreferences.php b/src/applications/settings/panel/PhabricatorSettingsPanelConpherencePreferences.php index 838d88f113..708ab2ba80 100644 --- a/src/applications/settings/panel/PhabricatorSettingsPanelConpherencePreferences.php +++ b/src/applications/settings/panel/PhabricatorSettingsPanelConpherencePreferences.php @@ -4,9 +4,8 @@ final class PhabricatorSettingsPanelConpherencePreferences extends PhabricatorSettingsPanel { public function isEnabled() { - $conpherence_app = PhabricatorApplication::getByClass( + return PhabricatorApplication::isClassInstalled( 'PhabricatorApplicationConpherence'); - return $conpherence_app->isInstalled(); } public function getPanelKey() { diff --git a/src/applications/settings/panel/PhabricatorSettingsPanelEmailPreferences.php b/src/applications/settings/panel/PhabricatorSettingsPanelEmailPreferences.php index 7199345259..655cbd1f46 100644 --- a/src/applications/settings/panel/PhabricatorSettingsPanelEmailPreferences.php +++ b/src/applications/settings/panel/PhabricatorSettingsPanelEmailPreferences.php @@ -52,9 +52,12 @@ final class PhabricatorSettingsPanelEmailPreferences $new_tags = $request->getArr('mailtags'); $mailtags = $preferences->getPreference('mailtags', array()); $all_tags = $this->getMailTags(); - if (!PhabricatorEnv::getEnvConfig('maniphest.enabled')) { + + $maniphest = 'PhabricatorApplicationManiphest'; + if (!PhabricatorApplication::isClassInstalled($maniphest)) { $all_tags = array_diff_key($all_tags, $this->getManiphestMailTags()); } + foreach ($all_tags as $key => $label) { $mailtags[$key] = (bool)idx($new_tags, $key, false); } @@ -186,7 +189,8 @@ final class PhabricatorSettingsPanelEmailPreferences $mailtags) ->setLabel(pht('Differential'))); - if (PhabricatorEnv::getEnvConfig('maniphest.enabled')) { + $maniphest = 'PhabricatorApplicationManiphest'; + if (PhabricatorApplication::isClassInstalled($maniphest)) { $form->appendChild( $this->buildMailTagCheckboxes( $this->getManiphestMailTags(), diff --git a/src/view/page/menu/PhabricatorMainMenuView.php b/src/view/page/menu/PhabricatorMainMenuView.php index 2c56e7f50c..bf3220ee0f 100644 --- a/src/view/page/menu/PhabricatorMainMenuView.php +++ b/src/view/page/menu/PhabricatorMainMenuView.php @@ -260,11 +260,9 @@ final class PhabricatorMainMenuView extends AphrontView { 'alert-notifications', ); - $conpherence_application = PhabricatorApplication::getByClass( - 'PhabricatorApplicationConpherence'); - $message_tag = ''; - if ($conpherence_application->isInstalled()) { + $conpherence = 'PhabricatorApplicationConpherence'; + if (PhabricatorApplication::isClassInstalled($conpherence)) { $message_id = celerity_generate_unique_node_id(); $message_count_id = celerity_generate_unique_node_id();