Skip to content

Commit a72ade9

Browse files
author
epriestley
committedFeb 4, 2020
Carve out a separate "Modules/Extensions" section of Config
Summary: Ref T13362. Config is currently doing a ton of stuff and fairly overwhelming. Separate out "Modules/Extensions" so it can live in its own section. (This stuff is mostly useful for development and normal users rarely need to end up here.) Test Plan: Visited seciton, clicked around. This is just a visual change. Maniphest Tasks: T13362 Differential Revision: https://secure.phabricator.com/D20930
1 parent c42c598 commit a72ade9

File tree

3 files changed

+22
-10
lines changed

3 files changed

+22
-10
lines changed
 

‎src/applications/config/application/PhabricatorConfigApplication.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ public function getRoutes() {
6363
'purge/' => 'PhabricatorConfigPurgeCacheController',
6464
),
6565
'module/' => array(
66-
'(?P<module>[^/]+)/' => 'PhabricatorConfigModuleController',
66+
'(?:(?P<module>[^/]+)/)?' => 'PhabricatorConfigModuleController',
6767
),
6868
'cluster/' => array(
6969
'databases/' => 'PhabricatorConfigClusterDatabasesController',

‎src/applications/config/controller/PhabricatorConfigController.php

-7
Original file line numberDiff line numberDiff line change
@@ -42,13 +42,6 @@ public function buildSideNavView($filter = null, $for_app = false) {
4242
pht('Repository Servers'), null, 'fa-code');
4343
$nav->addFilter('cluster/search/',
4444
pht('Search Servers'), null, 'fa-search');
45-
$nav->addLabel(pht('Modules'));
46-
47-
$modules = PhabricatorConfigModule::getAllModules();
48-
foreach ($modules as $key => $module) {
49-
$nav->addFilter('module/'.$key.'/',
50-
$module->getModuleName(), null, 'fa-puzzle-piece');
51-
}
5245

5346
return $nav;
5447
}

‎src/applications/config/controller/PhabricatorConfigModuleController.php

+21-2
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,11 @@ public function handleRequest(AphrontRequest $request) {
88
$key = $request->getURIData('module');
99

1010
$all_modules = PhabricatorConfigModule::getAllModules();
11+
12+
if (!strlen($key)) {
13+
$key = head_key($all_modules);
14+
}
15+
1116
if (empty($all_modules[$key])) {
1217
return new Aphront404Response();
1318
}
@@ -16,13 +21,27 @@ public function handleRequest(AphrontRequest $request) {
1621
$content = $module->renderModuleStatus($request);
1722
$title = $module->getModuleName();
1823

19-
$nav = $this->buildSideNavView();
20-
$nav->selectFilter('module/'.$key.'/');
24+
$nav = new AphrontSideNavFilterView();
25+
$nav->setBaseURI(new PhutilURI($this->getApplicationURI()));
26+
27+
$modules_uri = $this->getApplicationURI('module/');
28+
29+
$modules = PhabricatorConfigModule::getAllModules();
30+
31+
foreach ($modules as $module_key => $module) {
32+
$nav->newLink($module_key)
33+
->setName($module->getModuleName())
34+
->setHref(urisprintf('%s%s/', $modules_uri, $module_key))
35+
->setIcon('fa-puzzle-piece');
36+
}
37+
38+
$nav->selectFilter($key);
2139
$header = $this->buildHeaderView($title);
2240

2341
$view = $this->buildConfigBoxView($title, $content);
2442

2543
$crumbs = $this->buildApplicationCrumbs()
44+
->addTextCrumb(pht('Extensions/Modules'), $modules_uri)
2645
->addTextCrumb($title)
2746
->setBorder(true);
2847

0 commit comments

Comments
 (0)
Failed to load comments.