Generate file attachment transactions for explicit Remarkup attachments on common...
[phabricator.git] / src / applications / search / applicationpanel / PhabricatorSearchApplicationStorageEnginePanel.php
blob6dd0786c0c8e5832414b2cd8a6f3019c6542db38
1 <?php
3 final class PhabricatorSearchApplicationStorageEnginePanel
4 extends PhabricatorApplicationConfigurationPanel {
6 public function getPanelKey() {
7 return 'search';
10 public function shouldShowForApplication(
11 PhabricatorApplication $application) {
12 return $application instanceof PhabricatorSearchApplication;
15 public function buildConfigurationPagePanel() {
16 $viewer = $this->getViewer();
17 $application = $this->getApplication();
19 $services = PhabricatorSearchService::getAllServices();
21 $rows = array();
22 $rowc = array();
24 foreach ($services as $key => $service) {
25 try {
26 $name = $service->getDisplayName();
27 } catch (Exception $ex) {
28 $name = phutil_tag('em', array(), pht('Error'));
31 try {
32 $can_read = $service->isReadable() ? pht('Yes') : pht('No');
33 } catch (Exception $ex) {
34 $can_read = pht('N/A');
37 try {
38 $can_write = $service->isWritable() ? pht('Yes') : pht('No');
39 } catch (Exception $ex) {
40 $can_write = pht('N/A');
43 $rows[] = array(
44 $name,
45 $can_read,
46 $can_write,
50 $instructions = pht(
51 'To configure the search engines, edit [[ %s | `%s` ]] configuration. '.
52 'See **[[ %s | %s ]]** for documentation.',
53 '/config/edit/cluster.search/',
54 'cluster.search',
55 PhabricatorEnv::getDoclink('Cluster: Search'),
56 pht('Cluster: Search'));
59 $table = id(new AphrontTableView($rows))
60 ->setNoDataString(pht('No search engines available.'))
61 ->setNotice(new PHUIRemarkupView($viewer, $instructions))
62 ->setHeaders(
63 array(
64 pht('Engine Name'),
65 pht('Writable'),
66 pht('Readable'),
68 ->setRowClasses($rowc)
69 ->setColumnClasses(
70 array(
71 'wide',
72 '',
73 '',
74 ));
76 $box = id(new PHUIObjectBoxView())
77 ->setHeaderText(pht('Search Engines'))
78 ->appendChild($table);
80 return $box;
83 public function handlePanelRequest(
84 AphrontRequest $request,
85 PhabricatorController $controller) {
86 return new Aphront404Response();