Page MenuHomePhabricator

D13662.id33029.diff
No OneTemporary

D13662.id33029.diff

diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php
--- a/src/__phutil_library_map__.php
+++ b/src/__phutil_library_map__.php
@@ -1741,6 +1741,7 @@
'PhabricatorConfigDatabaseStatusController' => 'applications/config/controller/PhabricatorConfigDatabaseStatusController.php',
'PhabricatorConfigDefaultSource' => 'infrastructure/env/PhabricatorConfigDefaultSource.php',
'PhabricatorConfigDictionarySource' => 'infrastructure/env/PhabricatorConfigDictionarySource.php',
+ 'PhabricatorConfigEdgeModule' => 'applications/config/module/PhabricatorConfigEdgeModule.php',
'PhabricatorConfigEditController' => 'applications/config/controller/PhabricatorConfigEditController.php',
'PhabricatorConfigEditor' => 'applications/config/editor/PhabricatorConfigEditor.php',
'PhabricatorConfigEntry' => 'applications/config/storage/PhabricatorConfigEntry.php',
@@ -1763,14 +1764,17 @@
'PhabricatorConfigManagementMigrateWorkflow' => 'applications/config/management/PhabricatorConfigManagementMigrateWorkflow.php',
'PhabricatorConfigManagementSetWorkflow' => 'applications/config/management/PhabricatorConfigManagementSetWorkflow.php',
'PhabricatorConfigManagementWorkflow' => 'applications/config/management/PhabricatorConfigManagementWorkflow.php',
+ 'PhabricatorConfigModule' => 'applications/config/module/PhabricatorConfigModule.php',
+ 'PhabricatorConfigModuleController' => 'applications/config/controller/PhabricatorConfigModuleController.php',
'PhabricatorConfigOption' => 'applications/config/option/PhabricatorConfigOption.php',
'PhabricatorConfigOptionType' => 'applications/config/custom/PhabricatorConfigOptionType.php',
+ 'PhabricatorConfigPHIDModule' => 'applications/config/module/PhabricatorConfigPHIDModule.php',
'PhabricatorConfigProxySource' => 'infrastructure/env/PhabricatorConfigProxySource.php',
'PhabricatorConfigResponse' => 'applications/config/response/PhabricatorConfigResponse.php',
'PhabricatorConfigSchemaQuery' => 'applications/config/schema/PhabricatorConfigSchemaQuery.php',
'PhabricatorConfigSchemaSpec' => 'applications/config/schema/PhabricatorConfigSchemaSpec.php',
'PhabricatorConfigServerSchema' => 'applications/config/schema/PhabricatorConfigServerSchema.php',
- 'PhabricatorConfigSiteModuleController' => 'applications/config/controller/PhabricatorConfigSiteModuleController.php',
+ 'PhabricatorConfigSiteModule' => 'applications/config/module/PhabricatorConfigSiteModule.php',
'PhabricatorConfigSiteSource' => 'infrastructure/env/PhabricatorConfigSiteSource.php',
'PhabricatorConfigSource' => 'infrastructure/env/PhabricatorConfigSource.php',
'PhabricatorConfigStackSource' => 'infrastructure/env/PhabricatorConfigStackSource.php',
@@ -5478,6 +5482,7 @@
'PhabricatorConfigDatabaseStatusController' => 'PhabricatorConfigDatabaseController',
'PhabricatorConfigDefaultSource' => 'PhabricatorConfigProxySource',
'PhabricatorConfigDictionarySource' => 'PhabricatorConfigSource',
+ 'PhabricatorConfigEdgeModule' => 'PhabricatorConfigModule',
'PhabricatorConfigEditController' => 'PhabricatorConfigController',
'PhabricatorConfigEditor' => 'PhabricatorApplicationTransactionEditor',
'PhabricatorConfigEntry' => array(
@@ -5504,17 +5509,20 @@
'PhabricatorConfigManagementMigrateWorkflow' => 'PhabricatorConfigManagementWorkflow',
'PhabricatorConfigManagementSetWorkflow' => 'PhabricatorConfigManagementWorkflow',
'PhabricatorConfigManagementWorkflow' => 'PhabricatorManagementWorkflow',
+ 'PhabricatorConfigModule' => 'Phobject',
+ 'PhabricatorConfigModuleController' => 'PhabricatorConfigController',
'PhabricatorConfigOption' => array(
'Phobject',
'PhabricatorMarkupInterface',
),
'PhabricatorConfigOptionType' => 'Phobject',
+ 'PhabricatorConfigPHIDModule' => 'PhabricatorConfigModule',
'PhabricatorConfigProxySource' => 'PhabricatorConfigSource',
'PhabricatorConfigResponse' => 'AphrontStandaloneHTMLResponse',
'PhabricatorConfigSchemaQuery' => 'Phobject',
'PhabricatorConfigSchemaSpec' => 'Phobject',
'PhabricatorConfigServerSchema' => 'PhabricatorConfigStorageSchema',
- 'PhabricatorConfigSiteModuleController' => 'PhabricatorConfigController',
+ 'PhabricatorConfigSiteModule' => 'PhabricatorConfigModule',
'PhabricatorConfigSiteSource' => 'PhabricatorConfigProxySource',
'PhabricatorConfigSource' => 'Phobject',
'PhabricatorConfigStackSource' => 'PhabricatorConfigSource',
diff --git a/src/applications/config/application/PhabricatorConfigApplication.php b/src/applications/config/application/PhabricatorConfigApplication.php
--- a/src/applications/config/application/PhabricatorConfigApplication.php
+++ b/src/applications/config/application/PhabricatorConfigApplication.php
@@ -57,7 +57,7 @@
),
'cache/' => 'PhabricatorConfigCacheController',
'module/' => array(
- 'sites/' => 'PhabricatorConfigSiteModuleController',
+ '(?P<module>[^/]+)/' => 'PhabricatorConfigModuleController',
),
),
);
diff --git a/src/applications/config/controller/PhabricatorConfigController.php b/src/applications/config/controller/PhabricatorConfigController.php
--- a/src/applications/config/controller/PhabricatorConfigController.php
+++ b/src/applications/config/controller/PhabricatorConfigController.php
@@ -25,7 +25,11 @@
$nav->addLabel(pht('Welcome'));
$nav->addFilter('welcome/', pht('Welcome Screen'));
$nav->addLabel(pht('Modules'));
- $nav->addFilter('module/sites/', pht('Sites'));
+
+ $modules = PhabricatorConfigModule::getAllModules();
+ foreach ($modules as $key => $module) {
+ $nav->addFilter('module/'.$key.'/', $module->getModuleName());
+ }
return $nav;
}
diff --git a/src/applications/config/controller/PhabricatorConfigModuleController.php b/src/applications/config/controller/PhabricatorConfigModuleController.php
new file mode 100644
--- /dev/null
+++ b/src/applications/config/controller/PhabricatorConfigModuleController.php
@@ -0,0 +1,37 @@
+<?php
+
+final class PhabricatorConfigModuleController
+ extends PhabricatorConfigController {
+
+ public function handleRequest(AphrontRequest $request) {
+ $viewer = $this->getViewer();
+ $key = $request->getURIData('module');
+
+ $all_modules = PhabricatorConfigModule::getAllModules();
+ if (empty($all_modules[$key])) {
+ return new Aphront404Response();
+ }
+
+ $module = $all_modules[$key];
+ $content = $module->renderModuleStatus($request);
+ $name = $module->getModuleName();
+
+ $crumbs = $this->buildApplicationCrumbs();
+ $crumbs->addTextCrumb($name);
+
+ $nav = $this->buildSideNavView();
+ $nav->selectFilter('module/'.$key.'/');
+ $nav->appendChild(
+ array(
+ $crumbs,
+ $content,
+ ));
+
+ return $this->buildApplicationPage(
+ $nav,
+ array(
+ 'title' => $name,
+ ));
+ }
+
+}
diff --git a/src/applications/config/controller/PhabricatorConfigSiteModuleController.php b/src/applications/config/controller/PhabricatorConfigSiteModuleController.php
deleted file mode 100644
--- a/src/applications/config/controller/PhabricatorConfigSiteModuleController.php
+++ /dev/null
@@ -1,56 +0,0 @@
-<?php
-
-final class PhabricatorConfigSiteModuleController
- extends PhabricatorConfigController {
-
- public function handleRequest(AphrontRequest $request) {
- $viewer = $this->getViewer();
-
- $sites = AphrontSite::getAllSites();
-
- $rows = array();
- foreach ($sites as $key => $site) {
- $rows[] = array(
- $site->getPriority(),
- $key,
- $site->getDescription(),
- );
- }
-
- $table = id(new AphrontTableView($rows))
- ->setHeaders(
- array(
- pht('Priority'),
- pht('Class'),
- pht('Description'),
- ))
- ->setColumnClasses(
- array(
- null,
- 'pri',
- 'wide',
- ));
-
- $box = id(new PHUIObjectBoxView())
- ->setHeaderText(pht('Site Modules'))
- ->appendChild($table);
-
- $crumbs = $this->buildApplicationCrumbs();
- $crumbs->addTextCrumb(pht('Site Modules'));
-
- $nav = $this->buildSideNavView();
- $nav->selectFilter('module/sites/');
- $nav->appendChild(
- array(
- $crumbs,
- $box,
- ));
-
- return $this->buildApplicationPage(
- $nav,
- array(
- 'title' => array(pht('Site Modules')),
- ));
- }
-
-}
diff --git a/src/applications/config/module/PhabricatorConfigEdgeModule.php b/src/applications/config/module/PhabricatorConfigEdgeModule.php
new file mode 100644
--- /dev/null
+++ b/src/applications/config/module/PhabricatorConfigEdgeModule.php
@@ -0,0 +1,47 @@
+<?php
+
+final class PhabricatorConfigEdgeModule extends PhabricatorConfigModule {
+
+ public function getModuleKey() {
+ return 'edge';
+ }
+
+ public function getModuleName() {
+ return pht('Edge Types');
+ }
+
+ public function renderModuleStatus(AphrontRequest $request) {
+ $viewer = $request->getViewer();
+
+ $types = PhabricatorEdgeType::getAllTypes();
+ $types = msort($types, 'getEdgeConstant');
+
+ $rows = array();
+ foreach ($types as $key => $type) {
+ $rows[] = array(
+ $type->getEdgeConstant(),
+ $type->getInverseEdgeConstant(),
+ get_class($type),
+ );
+ }
+
+ $table = id(new AphrontTableView($rows))
+ ->setHeaders(
+ array(
+ pht('Constant'),
+ pht('Inverse'),
+ pht('Class'),
+ ))
+ ->setColumnClasses(
+ array(
+ null,
+ null,
+ 'pri wide',
+ ));
+
+ return id(new PHUIObjectBoxView())
+ ->setHeaderText(pht('Edge Types'))
+ ->appendChild($table);
+ }
+
+}
diff --git a/src/applications/config/module/PhabricatorConfigModule.php b/src/applications/config/module/PhabricatorConfigModule.php
new file mode 100644
--- /dev/null
+++ b/src/applications/config/module/PhabricatorConfigModule.php
@@ -0,0 +1,17 @@
+<?php
+
+abstract class PhabricatorConfigModule extends Phobject {
+
+ abstract public function getModuleKey();
+ abstract public function getModuleName();
+ abstract public function renderModuleStatus(AphrontRequest $request);
+
+ final public static function getAllModules() {
+ return id(new PhutilClassMapQuery())
+ ->setAncestorClass(__CLASS__)
+ ->setUniqueMethod('getModuleKey')
+ ->setSortMethod('getModuleName')
+ ->execute();
+ }
+
+}
diff --git a/src/applications/config/module/PhabricatorConfigPHIDModule.php b/src/applications/config/module/PhabricatorConfigPHIDModule.php
new file mode 100644
--- /dev/null
+++ b/src/applications/config/module/PhabricatorConfigPHIDModule.php
@@ -0,0 +1,47 @@
+<?php
+
+final class PhabricatorConfigPHIDModule extends PhabricatorConfigModule {
+
+ public function getModuleKey() {
+ return 'phid';
+ }
+
+ public function getModuleName() {
+ return pht('PHID Types');
+ }
+
+ public function renderModuleStatus(AphrontRequest $request) {
+ $viewer = $request->getViewer();
+
+ $types = PhabricatorPHIDType::getAllTypes();
+ $types = msort($types, 'getTypeConstant');
+
+ $rows = array();
+ foreach ($types as $key => $type) {
+ $rows[] = array(
+ $type->getTypeConstant(),
+ get_class($type),
+ $type->getTypeName(),
+ );
+ }
+
+ $table = id(new AphrontTableView($rows))
+ ->setHeaders(
+ array(
+ pht('Constant'),
+ pht('Class'),
+ pht('Name'),
+ ))
+ ->setColumnClasses(
+ array(
+ null,
+ 'pri',
+ 'wide',
+ ));
+
+ return id(new PHUIObjectBoxView())
+ ->setHeaderText(pht('PHID Types'))
+ ->appendChild($table);
+ }
+
+}
diff --git a/src/applications/config/module/PhabricatorConfigSiteModule.php b/src/applications/config/module/PhabricatorConfigSiteModule.php
new file mode 100644
--- /dev/null
+++ b/src/applications/config/module/PhabricatorConfigSiteModule.php
@@ -0,0 +1,46 @@
+<?php
+
+final class PhabricatorConfigSiteModule extends PhabricatorConfigModule {
+
+ public function getModuleKey() {
+ return 'site';
+ }
+
+ public function getModuleName() {
+ return pht('Sites');
+ }
+
+ public function renderModuleStatus(AphrontRequest $request) {
+ $viewer = $request->getViewer();
+
+ $sites = AphrontSite::getAllSites();
+
+ $rows = array();
+ foreach ($sites as $key => $site) {
+ $rows[] = array(
+ $site->getPriority(),
+ $key,
+ $site->getDescription(),
+ );
+ }
+
+ $table = id(new AphrontTableView($rows))
+ ->setHeaders(
+ array(
+ pht('Priority'),
+ pht('Class'),
+ pht('Description'),
+ ))
+ ->setColumnClasses(
+ array(
+ null,
+ 'pri',
+ 'wide',
+ ));
+
+ return id(new PHUIObjectBoxView())
+ ->setHeaderText(pht('Sites'))
+ ->appendChild($table);
+ }
+
+}

File Metadata

Mime Type
text/plain
Expires
Wed, Mar 19, 10:03 AM (3 w, 5 h ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7221252
Default Alt Text
D13662.id33029.diff (12 KB)

Event Timeline