forked from phacility/phabricator
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathPhabricatorConfigIssuePanelController.php
69 lines (60 loc) · 1.83 KB
/
PhabricatorConfigIssuePanelController.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<?php
final class PhabricatorConfigIssuePanelController
extends PhabricatorConfigController {
public function handleRequest(AphrontRequest $request) {
$viewer = $request->getViewer();
$engine = new PhabricatorSetupEngine();
$response = $engine->execute();
if ($response) {
return $response;
}
$issues = $engine->getIssues();
$unresolved_count = count($engine->getUnresolvedIssues());
if ($issues) {
require_celerity_resource('phabricator-notification-menu-css');
$items = array();
foreach ($issues as $issue) {
$classes = array();
$classes[] = 'phabricator-notification';
if ($issue->getIsIgnored()) {
$classes[] = 'phabricator-notification-read';
} else {
$classes[] = 'phabricator-notification-unread';
}
$uri = '/config/issue/'.$issue->getIssueKey().'/';
$title = $issue->getName();
$summary = $issue->getSummary();
$items[] = javelin_tag(
'div',
array(
'class' => implode(' ', $classes),
'sigil' => 'notification',
'meta' => array(
'href' => $uri,
),
),
$title);
}
$content = phutil_tag_div('setup-issue-menu', $items);
} else {
$content = phutil_tag_div(
'phabricator-notification no-notifications',
pht('You have no unresolved setup issues.'));
}
$content = hsprintf(
'<div class="phabricator-notification-header">%s</div>'.
'%s',
phutil_tag(
'a',
array(
'href' => '/config/issue/',
),
pht('Unresolved Setup Issues')),
$content);
$json = array(
'content' => $content,
'number' => (int)$unresolved_count,
);
return id(new AphrontAjaxResponse())->setContent($json);
}
}