@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Carve out a separate "Services" section of Config

Summary: Depends on D20930. Ref T13362. Put all the "Services" parts of Config in their own section.

Test Plan: Clicked through each section. This is just an organization / UI change with no significant behavioral impact.

Maniphest Tasks: T13362

Differential Revision: https://secure.phabricator.com/D20931

+122 -78
+16 -14
src/__phutil_library_map__.php
··· 2801 2801 'PhabricatorConfigAllController' => 'applications/config/controller/PhabricatorConfigAllController.php', 2802 2802 'PhabricatorConfigApplication' => 'applications/config/application/PhabricatorConfigApplication.php', 2803 2803 'PhabricatorConfigApplicationController' => 'applications/config/controller/PhabricatorConfigApplicationController.php', 2804 - 'PhabricatorConfigCacheController' => 'applications/config/controller/PhabricatorConfigCacheController.php', 2805 - 'PhabricatorConfigClusterDatabasesController' => 'applications/config/controller/PhabricatorConfigClusterDatabasesController.php', 2806 - 'PhabricatorConfigClusterNotificationsController' => 'applications/config/controller/PhabricatorConfigClusterNotificationsController.php', 2807 - 'PhabricatorConfigClusterRepositoriesController' => 'applications/config/controller/PhabricatorConfigClusterRepositoriesController.php', 2808 - 'PhabricatorConfigClusterSearchController' => 'applications/config/controller/PhabricatorConfigClusterSearchController.php', 2804 + 'PhabricatorConfigCacheController' => 'applications/config/controller/services/PhabricatorConfigCacheController.php', 2805 + 'PhabricatorConfigClusterDatabasesController' => 'applications/config/controller/services/PhabricatorConfigClusterDatabasesController.php', 2806 + 'PhabricatorConfigClusterNotificationsController' => 'applications/config/controller/services/PhabricatorConfigClusterNotificationsController.php', 2807 + 'PhabricatorConfigClusterRepositoriesController' => 'applications/config/controller/services/PhabricatorConfigClusterRepositoriesController.php', 2808 + 'PhabricatorConfigClusterSearchController' => 'applications/config/controller/services/PhabricatorConfigClusterSearchController.php', 2809 2809 'PhabricatorConfigCollectorsModule' => 'applications/config/module/PhabricatorConfigCollectorsModule.php', 2810 2810 'PhabricatorConfigColumnSchema' => 'applications/config/schema/PhabricatorConfigColumnSchema.php', 2811 2811 'PhabricatorConfigConfigPHIDType' => 'applications/config/phid/PhabricatorConfigConfigPHIDType.php', 2812 2812 'PhabricatorConfigConstants' => 'applications/config/constants/PhabricatorConfigConstants.php', 2813 2813 'PhabricatorConfigController' => 'applications/config/controller/PhabricatorConfigController.php', 2814 2814 'PhabricatorConfigCoreSchemaSpec' => 'applications/config/schema/PhabricatorConfigCoreSchemaSpec.php', 2815 - 'PhabricatorConfigDatabaseController' => 'applications/config/controller/PhabricatorConfigDatabaseController.php', 2816 - 'PhabricatorConfigDatabaseIssueController' => 'applications/config/controller/PhabricatorConfigDatabaseIssueController.php', 2815 + 'PhabricatorConfigDatabaseController' => 'applications/config/controller/services/PhabricatorConfigDatabaseController.php', 2816 + 'PhabricatorConfigDatabaseIssueController' => 'applications/config/controller/services/PhabricatorConfigDatabaseIssueController.php', 2817 2817 'PhabricatorConfigDatabaseSchema' => 'applications/config/schema/PhabricatorConfigDatabaseSchema.php', 2818 2818 'PhabricatorConfigDatabaseSource' => 'infrastructure/env/PhabricatorConfigDatabaseSource.php', 2819 - 'PhabricatorConfigDatabaseStatusController' => 'applications/config/controller/PhabricatorConfigDatabaseStatusController.php', 2819 + 'PhabricatorConfigDatabaseStatusController' => 'applications/config/controller/services/PhabricatorConfigDatabaseStatusController.php', 2820 2820 'PhabricatorConfigDefaultSource' => 'infrastructure/env/PhabricatorConfigDefaultSource.php', 2821 2821 'PhabricatorConfigDictionarySource' => 'infrastructure/env/PhabricatorConfigDictionarySource.php', 2822 2822 'PhabricatorConfigEdgeModule' => 'applications/config/module/PhabricatorConfigEdgeModule.php', ··· 2861 2861 'PhabricatorConfigSchemaQuery' => 'applications/config/schema/PhabricatorConfigSchemaQuery.php', 2862 2862 'PhabricatorConfigSchemaSpec' => 'applications/config/schema/PhabricatorConfigSchemaSpec.php', 2863 2863 'PhabricatorConfigServerSchema' => 'applications/config/schema/PhabricatorConfigServerSchema.php', 2864 + 'PhabricatorConfigServicesController' => 'applications/config/controller/services/PhabricatorConfigServicesController.php', 2864 2865 'PhabricatorConfigSetupCheckModule' => 'applications/config/module/PhabricatorConfigSetupCheckModule.php', 2865 2866 'PhabricatorConfigSiteModule' => 'applications/config/module/PhabricatorConfigSiteModule.php', 2866 2867 'PhabricatorConfigSiteSource' => 'infrastructure/env/PhabricatorConfigSiteSource.php', ··· 9134 9135 'PhabricatorConfigAllController' => 'PhabricatorConfigController', 9135 9136 'PhabricatorConfigApplication' => 'PhabricatorApplication', 9136 9137 'PhabricatorConfigApplicationController' => 'PhabricatorConfigController', 9137 - 'PhabricatorConfigCacheController' => 'PhabricatorConfigController', 9138 - 'PhabricatorConfigClusterDatabasesController' => 'PhabricatorConfigController', 9139 - 'PhabricatorConfigClusterNotificationsController' => 'PhabricatorConfigController', 9140 - 'PhabricatorConfigClusterRepositoriesController' => 'PhabricatorConfigController', 9141 - 'PhabricatorConfigClusterSearchController' => 'PhabricatorConfigController', 9138 + 'PhabricatorConfigCacheController' => 'PhabricatorConfigServicesController', 9139 + 'PhabricatorConfigClusterDatabasesController' => 'PhabricatorConfigServicesController', 9140 + 'PhabricatorConfigClusterNotificationsController' => 'PhabricatorConfigServicesController', 9141 + 'PhabricatorConfigClusterRepositoriesController' => 'PhabricatorConfigServicesController', 9142 + 'PhabricatorConfigClusterSearchController' => 'PhabricatorConfigServicesController', 9142 9143 'PhabricatorConfigCollectorsModule' => 'PhabricatorConfigModule', 9143 9144 'PhabricatorConfigColumnSchema' => 'PhabricatorConfigStorageSchema', 9144 9145 'PhabricatorConfigConfigPHIDType' => 'PhabricatorPHIDType', 9145 9146 'PhabricatorConfigConstants' => 'Phobject', 9146 9147 'PhabricatorConfigController' => 'PhabricatorController', 9147 9148 'PhabricatorConfigCoreSchemaSpec' => 'PhabricatorConfigSchemaSpec', 9148 - 'PhabricatorConfigDatabaseController' => 'PhabricatorConfigController', 9149 + 'PhabricatorConfigDatabaseController' => 'PhabricatorConfigServicesController', 9149 9150 'PhabricatorConfigDatabaseIssueController' => 'PhabricatorConfigDatabaseController', 9150 9151 'PhabricatorConfigDatabaseSchema' => 'PhabricatorConfigStorageSchema', 9151 9152 'PhabricatorConfigDatabaseSource' => 'PhabricatorConfigProxySource', ··· 9198 9199 'PhabricatorConfigSchemaQuery' => 'Phobject', 9199 9200 'PhabricatorConfigSchemaSpec' => 'Phobject', 9200 9201 'PhabricatorConfigServerSchema' => 'PhabricatorConfigStorageSchema', 9202 + 'PhabricatorConfigServicesController' => 'PhabricatorConfigController', 9201 9203 'PhabricatorConfigSetupCheckModule' => 'PhabricatorConfigModule', 9202 9204 'PhabricatorConfigSiteModule' => 'PhabricatorConfigModule', 9203 9205 'PhabricatorConfigSiteSource' => 'PhabricatorConfigProxySource',
+8 -7
src/applications/config/controller/PhabricatorConfigCacheController.php src/applications/config/controller/services/PhabricatorConfigCacheController.php
··· 1 1 <?php 2 2 3 3 final class PhabricatorConfigCacheController 4 - extends PhabricatorConfigController { 4 + extends PhabricatorConfigServicesController { 5 5 6 6 public function handleRequest(AphrontRequest $request) { 7 7 $viewer = $this->getViewer(); 8 8 9 - $nav = $this->buildSideNavView(); 10 - $nav->selectFilter('cache/'); 11 9 12 10 $purge_button = id(new PHUIButtonView()) 13 11 ->setText(pht('Purge Caches')) ··· 27 25 $data_box, 28 26 ); 29 27 30 - $crumbs = $this->buildApplicationCrumbs() 31 - ->addTextCrumb($title) 32 - ->setBorder(true); 28 + $crumbs = $this->newCrumbs() 29 + ->addTextCrumb($title); 33 30 34 31 $content = id(new PHUITwoColumnView()) 35 32 ->setHeader($header) 36 33 ->setFooter($page); 34 + 35 + $nav = $this->newNavigation('cache'); 37 36 38 37 return $this->newPage() 39 38 ->setTitle($title) ··· 92 91 'n', 93 92 'n', 94 93 )); 94 + 95 + $table = $this->buildConfigBoxView(pht('Cache Storage'), $table); 95 96 } 96 97 97 98 $properties = $this->buildConfigBoxView(pht('Data Cache'), $properties); 98 - $table = $this->buildConfigBoxView(pht('Cache Storage'), $table); 99 + 99 100 return array($properties, $table); 100 101 } 101 102
+5 -7
src/applications/config/controller/PhabricatorConfigClusterDatabasesController.php src/applications/config/controller/services/PhabricatorConfigClusterDatabasesController.php
··· 1 1 <?php 2 2 3 3 final class PhabricatorConfigClusterDatabasesController 4 - extends PhabricatorConfigController { 4 + extends PhabricatorConfigServicesController { 5 5 6 6 public function handleRequest(AphrontRequest $request) { 7 - $nav = $this->buildSideNavView(); 8 - $nav->selectFilter('cluster/databases/'); 7 + $nav = $this->newNavigation('database-servers'); 9 8 10 - $title = pht('Cluster Database Status'); 9 + $title = pht('Database Servers'); 11 10 $doc_href = PhabricatorEnv::getDoclink('Cluster: Databases'); 12 11 $button = id(new PHUIButtonView()) 13 12 ->setIcon('fa-book') ··· 20 19 $database_status = $this->buildClusterDatabaseStatus(); 21 20 $status = $this->buildConfigBoxView(pht('Status'), $database_status); 22 21 23 - $crumbs = $this->buildApplicationCrumbs() 24 - ->addTextCrumb($title) 25 - ->setBorder(true); 22 + $crumbs = $this->newCrumbs() 23 + ->addTextCrumb($title); 26 24 27 25 $content = id(new PHUITwoColumnView()) 28 26 ->setHeader($header)
+6 -8
src/applications/config/controller/PhabricatorConfigClusterNotificationsController.php src/applications/config/controller/services/PhabricatorConfigClusterNotificationsController.php
··· 1 1 <?php 2 2 3 3 final class PhabricatorConfigClusterNotificationsController 4 - extends PhabricatorConfigController { 4 + extends PhabricatorConfigServicesController { 5 5 6 6 public function handleRequest(AphrontRequest $request) { 7 - $nav = $this->buildSideNavView(); 8 - $nav->selectFilter('cluster/notifications/'); 9 - 10 - $title = pht('Cluster Notifications'); 7 + $title = pht('Notification Servers'); 11 8 $doc_href = PhabricatorEnv::getDoclink('Cluster: Notifications'); 12 9 $button = id(new PHUIButtonView()) 13 10 ->setIcon('fa-book') ··· 22 19 pht('Notifications Status'), 23 20 $notification_status); 24 21 25 - $crumbs = $this->buildApplicationCrumbs() 26 - ->addTextCrumb($title) 27 - ->setBorder(true); 22 + $crumbs = $this->newCrumbs() 23 + ->addTextCrumb($title); 28 24 29 25 $content = id(new PHUITwoColumnView()) 30 26 ->setHeader($header) 31 27 ->setFooter($status); 28 + 29 + $nav = $this->newNavigation('notification-servers'); 32 30 33 31 return $this->newPage() 34 32 ->setTitle($title)
+6 -8
src/applications/config/controller/PhabricatorConfigClusterRepositoriesController.php src/applications/config/controller/services/PhabricatorConfigClusterRepositoriesController.php
··· 1 1 <?php 2 2 3 3 final class PhabricatorConfigClusterRepositoriesController 4 - extends PhabricatorConfigController { 4 + extends PhabricatorConfigServicesController { 5 5 6 6 public function handleRequest(AphrontRequest $request) { 7 - $nav = $this->buildSideNavView(); 8 - $nav->selectFilter('cluster/repositories/'); 9 - 10 - $title = pht('Cluster Repository Status'); 7 + $title = pht('Repository Services'); 11 8 12 9 $doc_href = PhabricatorEnv::getDoclink('Cluster: Repositories'); 13 10 $button = id(new PHUIButtonView()) ··· 26 23 $repo_errors = $this->buildConfigBoxView( 27 24 pht('Repository Errors'), $repository_errors); 28 25 29 - $crumbs = $this->buildApplicationCrumbs() 30 - ->addTextCrumb($title) 31 - ->setBorder(true); 26 + $crumbs = $this->newCrumbs() 27 + ->addTextCrumb($title); 32 28 33 29 $content = id(new PHUITwoColumnView()) 34 30 ->setHeader($header) ··· 37 33 $repo_status, 38 34 $repo_errors, 39 35 )); 36 + 37 + $nav = $this->newNavigation('repository-servers'); 40 38 41 39 return $this->newPage() 42 40 ->setTitle($title)
+6 -8
src/applications/config/controller/PhabricatorConfigClusterSearchController.php src/applications/config/controller/services/PhabricatorConfigClusterSearchController.php
··· 1 1 <?php 2 2 3 3 final class PhabricatorConfigClusterSearchController 4 - extends PhabricatorConfigController { 4 + extends PhabricatorConfigServicesController { 5 5 6 6 public function handleRequest(AphrontRequest $request) { 7 - $nav = $this->buildSideNavView(); 8 - $nav->selectFilter('cluster/search/'); 9 - 10 - $title = pht('Cluster Search'); 7 + $title = pht('Search Servers'); 11 8 $doc_href = PhabricatorEnv::getDoclink('Cluster: Search'); 12 9 13 10 $button = id(new PHUIButtonView()) ··· 20 17 21 18 $search_status = $this->buildClusterSearchStatus(); 22 19 23 - $crumbs = $this->buildApplicationCrumbs() 24 - ->addTextCrumb($title) 25 - ->setBorder(true); 20 + $crumbs = $this->newCrumbs() 21 + ->addTextCrumb($title); 26 22 27 23 $content = id(new PHUITwoColumnView()) 28 24 ->setHeader($header) 29 25 ->setFooter($search_status); 26 + 27 + $nav = $this->newNavigation('search-servers'); 30 28 31 29 return $this->newPage() 32 30 ->setTitle($title)
-17
src/applications/config/controller/PhabricatorConfigController.php
··· 25 25 pht('Setup Issues'), null, 'fa-warning'); 26 26 $nav->addFilter(null, 27 27 pht('Installation Guide'), $guide_href, 'fa-book'); 28 - $nav->addLabel(pht('Database')); 29 - $nav->addFilter('database/', 30 - pht('Database Status'), null, 'fa-heartbeat'); 31 - $nav->addFilter('dbissue/', 32 - pht('Database Issues'), null, 'fa-exclamation-circle'); 33 - $nav->addLabel(pht('Cache')); 34 - $nav->addFilter('cache/', 35 - pht('Cache Status'), null, 'fa-home'); 36 - $nav->addLabel(pht('Cluster')); 37 - $nav->addFilter('cluster/databases/', 38 - pht('Database Servers'), null, 'fa-database'); 39 - $nav->addFilter('cluster/notifications/', 40 - pht('Notification Servers'), null, 'fa-bell-o'); 41 - $nav->addFilter('cluster/repositories/', 42 - pht('Repository Servers'), null, 'fa-code'); 43 - $nav->addFilter('cluster/search/', 44 - pht('Search Servers'), null, 'fa-search'); 45 28 46 29 return $nav; 47 30 }
+1 -1
src/applications/config/controller/PhabricatorConfigDatabaseController.php src/applications/config/controller/services/PhabricatorConfigDatabaseController.php
··· 1 1 <?php 2 2 3 3 abstract class PhabricatorConfigDatabaseController 4 - extends PhabricatorConfigController { 4 + extends PhabricatorConfigServicesController { 5 5 6 6 protected function renderIcon($status) { 7 7 switch ($status) {
+3 -4
src/applications/config/controller/PhabricatorConfigDatabaseIssueController.php src/applications/config/controller/services/PhabricatorConfigDatabaseIssueController.php
··· 153 153 new PhutilNumber($counts[PhabricatorConfigStorageSchema::STATUS_WARN])); 154 154 } 155 155 156 - $title = pht('Database Issues'); 156 + $title = pht('Schemata Issues'); 157 157 $header = $this->buildHeaderView($title); 158 158 159 - $nav = $this->buildSideNavView(); 160 - $nav->selectFilter('dbissue/'); 159 + $nav = $this->newNavigation('schemata-issues'); 161 160 162 161 $view = $this->buildConfigBoxView(pht('Issues'), $table); 163 162 164 - $crumbs = $this->buildApplicationCrumbs() 163 + $crumbs = $this->newCrumbs() 165 164 ->addTextCrumb($title) 166 165 ->setBorder(true); 167 166
+2 -4
src/applications/config/controller/PhabricatorConfigDatabaseStatusController.php src/applications/config/controller/services/PhabricatorConfigDatabaseStatusController.php
··· 71 71 } 72 72 73 73 private function buildResponse($title, $body) { 74 - $nav = $this->buildSideNavView(); 75 - $nav->selectFilter('database/'); 74 + $nav = $this->newNavigation('schemata'); 76 75 77 76 if (!$title) { 78 77 $title = pht('Database Status'); ··· 118 117 ); 119 118 } 120 119 121 - $crumbs = $this->buildApplicationCrumbs(); 122 - $crumbs->setBorder(true); 120 + $crumbs = $this->newCrumbs(); 123 121 124 122 $last_key = last_key($links); 125 123 foreach ($links as $link_key => $link) {
+69
src/applications/config/controller/services/PhabricatorConfigServicesController.php
··· 1 + <?php 2 + 3 + abstract class PhabricatorConfigServicesController 4 + extends PhabricatorConfigController { 5 + 6 + public function newNavigation($select_filter) { 7 + $services_uri = $this->getApplicationURI(); 8 + 9 + $nav = id(new AphrontSideNavFilterView()) 10 + ->setBaseURI(new PhutilURI($services_uri)); 11 + 12 + $nav->addLabel(pht('Databases')); 13 + 14 + $nav->newLink('database-servers') 15 + ->setName(pht('Database Servers')) 16 + ->setIcon('fa-database') 17 + ->setHref(urisprintf('%s%s/', $services_uri, 'cluster/databases')); 18 + 19 + $nav->newLink('schemata') 20 + ->setName(pht('Database Schemata')) 21 + ->setIcon('fa-table') 22 + ->setHref(urisprintf('%s%s/', $services_uri, 'database')); 23 + 24 + $nav->newLink('schemata-issues') 25 + ->setName(pht('Schemata Issues')) 26 + ->setIcon('fa-exclamation-circle') 27 + ->setHref(urisprintf('%s%s/', $services_uri, 'dbissue')); 28 + 29 + 30 + $nav->addLabel(pht('Cache')); 31 + 32 + $nav->newLink('cache') 33 + ->setName(pht('Cache Status')) 34 + ->setIcon('fa-archive') 35 + ->setHref(urisprintf('%s%s/', $services_uri, 'cache')); 36 + 37 + $nav->addLabel(pht('Other Services')); 38 + 39 + $nav->newLink('notification-servers') 40 + ->setName(pht('Notification Servers')) 41 + ->setIcon('fa-bell-o') 42 + ->setHref(urisprintf('%s%s/', $services_uri, 'cluster/notifications')); 43 + 44 + $nav->newLink('repository-servers') 45 + ->setName(pht('Repository Servers')) 46 + ->setIcon('fa-code') 47 + ->setHref(urisprintf('%s%s/', $services_uri, 'cluster/repositories')); 48 + 49 + $nav->newLink('search-servers') 50 + ->setName(pht('Search Servers')) 51 + ->setIcon('fa-search') 52 + ->setHref(urisprintf('%s%s/', $services_uri, 'cluster/search')); 53 + 54 + if ($select_filter) { 55 + $nav->selectFilter($select_filter); 56 + } 57 + 58 + return $nav; 59 + } 60 + 61 + public function newCrumbs() { 62 + $services_uri = $this->getApplicationURI('cluster/databases/'); 63 + 64 + return $this->buildApplicationCrumbs() 65 + ->addTextCrumb(pht('Services')) 66 + ->setBorder(true); 67 + } 68 + 69 + }