@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<?php
2
3abstract 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 Status'))
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}