mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-14 10:52:41 +01:00
18f856ac6f
Summary: Ref T4324. Currently, it's a bit of a pain to send yourself notifications, and often involves multiple browsers. Instead, add a button to send them. Test Plan: {F114495} Reviewers: btrahan Reviewed By: btrahan CC: aran Maniphest Tasks: T4324 Differential Revision: https://secure.phabricator.com/D8255
83 lines
2.1 KiB
PHP
83 lines
2.1 KiB
PHP
<?php
|
|
|
|
final class PhabricatorNotificationStatusController
|
|
extends PhabricatorNotificationController {
|
|
|
|
public function processRequest() {
|
|
try {
|
|
$status = PhabricatorNotificationClient::getServerStatus();
|
|
$status = $this->renderServerStatus($status);
|
|
} catch (Exception $ex) {
|
|
$status = new AphrontErrorView();
|
|
$status->setTitle("Notification Server Issue");
|
|
$status->appendChild(hsprintf(
|
|
'Unable to determine server status. This probably means the server '.
|
|
'is not in great shape. The specific issue encountered was:'.
|
|
'<br />'.
|
|
'<br />'.
|
|
'<strong>%s</strong> %s',
|
|
get_class($ex),
|
|
phutil_escape_html_newlines($ex->getMessage())));
|
|
}
|
|
|
|
$crumbs = $this->buildApplicationCrumbs();
|
|
$crumbs->addTextCrumb(pht('Status'));
|
|
|
|
return $this->buildApplicationPage(
|
|
array(
|
|
$crumbs,
|
|
$status,
|
|
),
|
|
array(
|
|
'title' => pht('Notification Server Status'),
|
|
));
|
|
}
|
|
|
|
private function renderServerStatus(array $status) {
|
|
|
|
$rows = array();
|
|
foreach ($status as $key => $value) {
|
|
switch ($key) {
|
|
case 'uptime':
|
|
$value /= 1000;
|
|
$value = phabricator_format_relative_time_detailed($value);
|
|
break;
|
|
case 'log':
|
|
break;
|
|
default:
|
|
$value = number_format($value);
|
|
break;
|
|
}
|
|
|
|
$rows[] = array($key, $value);
|
|
}
|
|
|
|
$table = new AphrontTableView($rows);
|
|
$table->setColumnClasses(
|
|
array(
|
|
'header',
|
|
'wide',
|
|
));
|
|
|
|
$test_icon = id(new PHUIIconView())
|
|
->setSpriteSheet(PHUIIconView::SPRITE_ICONS)
|
|
->setSpriteIcon('warning');
|
|
|
|
$test_button = id(new PHUIButtonView())
|
|
->setTag('a')
|
|
->setWorkflow(true)
|
|
->setText(pht('Send Test Notification'))
|
|
->setHref($this->getApplicationURI("test/"))
|
|
->setIcon($test_icon);
|
|
|
|
$header = id(new PHUIHeaderView())
|
|
->setHeader(pht('Notification Server Status'))
|
|
->addActionLink($test_button);
|
|
|
|
$box = id(new PHUIObjectBoxView())
|
|
->setHeader($header)
|
|
->appendChild($table);
|
|
|
|
return $box;
|
|
}
|
|
}
|