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');
|
2013-09-09 14:14:34 -07:00
|
|
|
$list = new PHUIObjectItemListView();
|
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().'/');
|
2013-09-09 14:14:34 -07:00
|
|
|
$item = id(new PHUIObjectItemView())
|
2013-02-22 09:21:01 -08:00
|
|
|
->setHeader($issue->getName())
|
|
|
|
|
->setHref($href)
|
|
|
|
|
->addAttribute($issue->getSummary());
|
|
|
|
|
if (!$issue->getIsIgnored()) {
|
2013-06-25 10:17:46 -07:00
|
|
|
$item->setBarColor('yellow');
|
2013-07-12 11:20:24 -07:00
|
|
|
$item->addAction(
|
|
|
|
|
id(new PHUIListItemView())
|
|
|
|
|
->setIcon('unpublish')
|
|
|
|
|
->setWorkflow(true)
|
|
|
|
|
->setName(pht('Ignore'))
|
|
|
|
|
->setHref('/config/ignore/'.$issue->getIssueKey().'/'));
|
2013-02-22 09:21:01 -08:00
|
|
|
$list->addItem($item);
|
|
|
|
|
} else {
|
|
|
|
|
$item->addIcon('none', pht('Ignored'));
|
2013-07-12 11:31:20 -07:00
|
|
|
$item->setDisabled(true);
|
2013-07-12 11:20:24 -07:00
|
|
|
$item->addAction(
|
|
|
|
|
id(new PHUIListItemView())
|
|
|
|
|
->setIcon('preview')
|
|
|
|
|
->setWorkflow(true)
|
|
|
|
|
->setName(pht('Unignore'))
|
|
|
|
|
->setHref('/config/unignore/'.$issue->getIssueKey().'/'));
|
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;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|