Files
phabricator/src/applications/config/controller/PhabricatorConfigIssueListController.php
epriestley b41b1b43db Implement card style and extras for object item lists
Summary:
Initial pass at elements appearing on M10.

Glaring omissions:

  - I cut a single icon out of M10 in a haphazard way.
  - No linear graident texture on the cards.

Test Plan:
{F35248}
{F35249}

Reviewers: chad

Reviewed By: chad

CC: aran

Differential Revision: https://secure.phabricator.com/D5311
2013-03-09 17:55:01 -08:00

90 lines
2.5 KiB
PHP

<?php
final class PhabricatorConfigIssueListController
extends PhabricatorConfigController {
public function processRequest() {
$request = $this->getRequest();
$user = $request->getUser();
$nav = $this->buildSideNavView();
$nav->selectFilter('issue/');
$issues = PhabricatorSetupCheck::runAllChecks();
PhabricatorSetupCheck::setOpenSetupIssueCount(
PhabricatorSetupCheck::countUnignoredIssues($issues));
$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())
->setName(pht('Setup'))
->setHref($this->getApplicationURI('issue/')));
$nav->setCrumbs($crumbs);
return $this->buildApplicationPage(
$nav,
array(
'title' => $title,
'device' => true,
));
}
private function buildIssueList(array $issues) {
assert_instances_of($issues, 'PhabricatorSetupIssue');
$list = new PhabricatorObjectItemListView();
$list->setStackable(true);
$ignored_items = array();
foreach ($issues as $issue) {
$href = $this->getApplicationURI('/issue/'.$issue->getIssueKey().'/');
$item = id(new PhabricatorObjectItemView())
->setHeader($issue->getName())
->setHref($href)
->setBarColor('yellow')
->addAttribute($issue->getSummary());
if (!$issue->getIsIgnored()) {
$item->addIcon('warning', pht('Setup Warning'));
$link = javelin_tag(
'a',
array('href' => '/config/ignore/'.$issue->getIssueKey().'/',
'sigil' => 'workflow'),
pht('Ignore'));
$item->addAttribute($link);
$list->addItem($item);
} else {
$item->addIcon('none', pht('Ignored'));
$link = javelin_tag(
'a',
array('href' => '/config/unignore/'.$issue->getIssueKey().'/',
'sigil' => 'workflow'),
pht('Unignore'));
$item->addAttribute($link);
$ignored_items[] = $item;
}
}
foreach ($ignored_items as $item) {
$list->addItem($item);
}
return $list;
}
}