Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/phabricator
Path: blob/master/src/applications/config/controller/issue/PhabricatorConfigIssuePanelController.php
12261 views
1
<?php
2
3
final class PhabricatorConfigIssuePanelController
4
extends PhabricatorConfigController {
5
6
public function handleRequest(AphrontRequest $request) {
7
$viewer = $request->getViewer();
8
9
$engine = new PhabricatorSetupEngine();
10
$response = $engine->execute();
11
if ($response) {
12
return $response;
13
}
14
$issues = $engine->getIssues();
15
$unresolved_count = count($engine->getUnresolvedIssues());
16
17
if ($issues) {
18
require_celerity_resource('phabricator-notification-menu-css');
19
20
$items = array();
21
foreach ($issues as $issue) {
22
$classes = array();
23
$classes[] = 'phabricator-notification';
24
if ($issue->getIsIgnored()) {
25
$classes[] = 'phabricator-notification-read';
26
} else {
27
$classes[] = 'phabricator-notification-unread';
28
}
29
$uri = '/config/issue/'.$issue->getIssueKey().'/';
30
$title = $issue->getName();
31
$summary = $issue->getSummary();
32
$items[] = javelin_tag(
33
'div',
34
array(
35
'class' => implode(' ', $classes),
36
'sigil' => 'notification',
37
'meta' => array(
38
'href' => $uri,
39
),
40
),
41
$title);
42
}
43
$content = phutil_tag_div('setup-issue-menu', $items);
44
} else {
45
$content = phutil_tag_div(
46
'phabricator-notification no-notifications',
47
pht('You have no unresolved setup issues.'));
48
}
49
50
$content = hsprintf(
51
'<div class="phabricator-notification-header">%s</div>'.
52
'%s',
53
phutil_tag(
54
'a',
55
array(
56
'href' => '/config/issue/',
57
),
58
pht('Unresolved Setup Issues')),
59
$content);
60
61
$json = array(
62
'content' => $content,
63
'number' => (int)$unresolved_count,
64
);
65
66
return id(new AphrontAjaxResponse())->setContent($json);
67
}
68
69
}
70
71