3
final class PhabricatorConfigIssueListController
4
extends PhabricatorConfigController {
6
public function processRequest() {
7
$request = $this->getRequest();
8
$user = $request->getUser();
10
$nav = $this->buildSideNavView();
11
$nav->selectFilter('issue/');
13
$issues = PhabricatorSetupCheck::runAllChecks();
14
PhabricatorSetupCheck::setOpenSetupIssueCount(
15
PhabricatorSetupCheck::countUnignoredIssues($issues));
17
$list = $this->buildIssueList($issues);
18
$list->setNoDataString(pht('There are no open setup issues.'));
19
$list->setStackable(true);
21
$box = id(new PHUIObjectBoxView())
22
->setHeaderText(pht('Open Phabricator Setup Issues'))
30
$title = pht('Setup Issues');
33
->buildApplicationCrumbs($nav)
34
->addTextCrumb(pht('Setup'), $this->getApplicationURI('issue/'));
36
$nav->setCrumbs($crumbs);
38
return $this->buildApplicationPage(
45
private function buildIssueList(array $issues) {
46
assert_instances_of($issues, 'PhabricatorSetupIssue');
47
$list = new PHUIObjectItemListView();
48
$ignored_items = array();
50
foreach ($issues as $issue) {
51
$href = $this->getApplicationURI('/issue/'.$issue->getIssueKey().'/');
52
$item = id(new PHUIObjectItemView())
53
->setHeader($issue->getName())
55
->addAttribute($issue->getSummary());
56
if (!$issue->getIsIgnored()) {
57
$item->setBarColor('yellow');
58
$list->addItem($item);
60
$item->addIcon('fa-eye-slash', pht('Ignored'));
61
$item->setDisabled(true);
62
$item->setBarColor('none');
63
$ignored_items[] = $item;
67
foreach ($ignored_items as $item) {
68
$list->addItem($item);