2012-12-30 06:37:49 -08:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
final class PhabricatorConfigIssueListController
|
|
|
|
|
extends PhabricatorConfigController {
|
|
|
|
|
|
|
|
|
|
public function processRequest() {
|
|
|
|
|
$request = $this->getRequest();
|
|
|
|
|
$user = $request->getUser();
|
|
|
|
|
|
|
|
|
|
$nav = $this->buildSideNavView();
|
2012-12-30 15:36:06 -08:00
|
|
|
$nav->selectFilter('issue/');
|
2012-12-30 06:37:49 -08:00
|
|
|
|
|
|
|
|
$issues = PhabricatorSetupCheck::runAllChecks();
|
2013-02-22 09:21:01 -08:00
|
|
|
PhabricatorSetupCheck::setOpenSetupIssueCount(
|
|
|
|
|
PhabricatorSetupCheck::countUnignoredIssues($issues));
|
2012-12-30 06:37:49 -08:00
|
|
|
|
|
|
|
|
$list = $this->buildIssueList($issues);
|
|
|
|
|
$list->setNoDataString(pht("There are no open setup issues."));
|
|
|
|
|
|
|
|
|
|
$header = id(new PhabricatorHeaderView())
|
|
|
|
|
->setHeader(pht('Open Phabricator Setup Issues'));
|
|
|
|
|
|
|
|
|
|
$nav->appendChild(
|
|
|
|
|
array(
|
|
|
|
|
$header,
|
|
|
|
|
$list,
|
|
|
|
|
));
|
|
|
|
|
|
|
|
|
|
$title = pht('Setup Issues');
|
|
|
|
|
|
|
|
|
|
$crumbs = $this
|
|
|
|
|
->buildApplicationCrumbs($nav)
|
|
|
|
|
->addCrumb(
|
|
|
|
|
id(new PhabricatorCrumbView())
|
2012-12-30 15:36:06 -08:00
|
|
|
->setName(pht('Setup'))
|
2012-12-30 06:37:49 -08:00
|
|
|
->setHref($this->getApplicationURI('issue/')));
|
|
|
|
|
|
|
|
|
|
$nav->setCrumbs($crumbs);
|
|
|
|
|
|
|
|
|
|
return $this->buildApplicationPage(
|
|
|
|
|
$nav,
|
|
|
|
|
array(
|
|
|
|
|
'title' => $title,
|
|
|
|
|
'device' => true,
|
2013-02-19 13:33:10 -08:00
|
|
|
));
|
2012-12-30 06:37:49 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private function buildIssueList(array $issues) {
|
|
|
|
|
assert_instances_of($issues, 'PhabricatorSetupIssue');
|
|
|
|
|
$list = new PhabricatorObjectItemListView();
|
2013-06-20 13:25:01 -07:00
|
|
|
$list->setCards(true);
|
2013-02-22 09:21:01 -08:00
|
|
|
$ignored_items = array();
|
2012-12-30 06:37:49 -08:00
|
|
|
|
|
|
|
|
foreach ($issues as $issue) {
|
2013-02-22 09:21:01 -08:00
|
|
|
$href = $this->getApplicationURI('/issue/'.$issue->getIssueKey().'/');
|
|
|
|
|
$item = id(new PhabricatorObjectItemView())
|
|
|
|
|
->setHeader($issue->getName())
|
|
|
|
|
->setHref($href)
|
|
|
|
|
->addAttribute($issue->getSummary());
|
|
|
|
|
if (!$issue->getIsIgnored()) {
|
|
|
|
|
$item->addIcon('warning', pht('Setup Warning'));
|
2013-03-06 14:14:09 -08:00
|
|
|
$link = javelin_tag(
|
|
|
|
|
'a',
|
|
|
|
|
array('href' => '/config/ignore/'.$issue->getIssueKey().'/',
|
|
|
|
|
'sigil' => 'workflow'),
|
|
|
|
|
pht('Ignore'));
|
2013-06-25 10:17:46 -07:00
|
|
|
$item->setBarColor('yellow');
|
2013-03-06 14:14:09 -08:00
|
|
|
$item->addAttribute($link);
|
2013-02-22 09:21:01 -08:00
|
|
|
$list->addItem($item);
|
|
|
|
|
} else {
|
|
|
|
|
$item->addIcon('none', pht('Ignored'));
|
2013-03-06 14:14:09 -08:00
|
|
|
$link = javelin_tag(
|
|
|
|
|
'a',
|
|
|
|
|
array('href' => '/config/unignore/'.$issue->getIssueKey().'/',
|
|
|
|
|
'sigil' => 'workflow'),
|
|
|
|
|
pht('Unignore'));
|
|
|
|
|
$item->addAttribute($link);
|
2013-06-25 10:17:46 -07:00
|
|
|
$item->setBarColor('none');
|
2013-02-22 09:21:01 -08:00
|
|
|
$ignored_items[] = $item;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
foreach ($ignored_items as $item) {
|
2012-12-30 06:37:49 -08:00
|
|
|
$list->addItem($item);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return $list;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|