Differential D20934 Diff 49950 src/applications/config/controller/issue/PhabricatorConfigIssueListController.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/config/controller/issue/PhabricatorConfigIssueListController.php
- This file was moved from src/applications/config/controller/PhabricatorConfigIssueListController.php.
<?php | <?php | ||||
final class PhabricatorConfigIssueListController | final class PhabricatorConfigIssueListController | ||||
extends PhabricatorConfigController { | extends PhabricatorConfigController { | ||||
public function handleRequest(AphrontRequest $request) { | public function handleRequest(AphrontRequest $request) { | ||||
$viewer = $request->getViewer(); | $viewer = $request->getViewer(); | ||||
$nav = $this->buildSideNavView(); | |||||
$nav->selectFilter('issue/'); | |||||
$engine = new PhabricatorSetupEngine(); | $engine = new PhabricatorSetupEngine(); | ||||
$response = $engine->execute(); | $response = $engine->execute(); | ||||
if ($response) { | if ($response) { | ||||
return $response; | return $response; | ||||
} | } | ||||
$issues = $engine->getIssues(); | $issues = $engine->getIssues(); | ||||
$important = $this->buildIssueList( | $important = $this->buildIssueList( | ||||
Show All 9 Lines | $mysql = $this->buildIssueList( | ||||
PhabricatorSetupCheck::GROUP_MYSQL, | PhabricatorSetupCheck::GROUP_MYSQL, | ||||
'fa-database'); | 'fa-database'); | ||||
$other = $this->buildIssueList( | $other = $this->buildIssueList( | ||||
$issues, | $issues, | ||||
PhabricatorSetupCheck::GROUP_OTHER, | PhabricatorSetupCheck::GROUP_OTHER, | ||||
'fa-question-circle'); | 'fa-question-circle'); | ||||
$title = pht('Setup Issues'); | $title = pht('Setup Issues'); | ||||
$header = $this->buildHeaderView($title); | |||||
if (!$issues) { | if (!$issues) { | ||||
$issue_list = id(new PHUIInfoView()) | $issue_list = id(new PHUIInfoView()) | ||||
->setTitle(pht('No Issues')) | ->setTitle(pht('No Issues')) | ||||
->appendChild( | ->appendChild( | ||||
pht('Your install has no current setup issues to resolve.')) | pht('Your install has no current setup issues to resolve.')) | ||||
->setSeverity(PHUIInfoView::SEVERITY_NOTICE); | ->setSeverity(PHUIInfoView::SEVERITY_NOTICE); | ||||
} else { | } else { | ||||
$issue_list = array( | $issue_list = array( | ||||
$important, | $important, | ||||
$php, | $php, | ||||
$mysql, | $mysql, | ||||
$other, | $other, | ||||
); | ); | ||||
$issue_list = $this->buildConfigBoxView(pht('Issues'), $issue_list); | $issue_list = $this->buildConfigBoxView( | ||||
pht('Unresolved Setup Issues'), | |||||
$issue_list); | |||||
} | } | ||||
$crumbs = $this->buildApplicationCrumbs() | $crumbs = $this->buildApplicationCrumbs() | ||||
->addTextCrumb($title) | ->addTextCrumb($title) | ||||
->setBorder(true); | ->setBorder(true); | ||||
$launcher_view = id(new PHUILauncherView()) | |||||
->appendChild($issue_list); | |||||
$content = id(new PHUITwoColumnView()) | $content = id(new PHUITwoColumnView()) | ||||
->setHeader($header) | ->setFooter($launcher_view); | ||||
->setFooter($issue_list); | |||||
return $this->newPage() | return $this->newPage() | ||||
->setTitle($title) | ->setTitle($title) | ||||
->setCrumbs($crumbs) | ->setCrumbs($crumbs) | ||||
->setNavigation($nav) | |||||
->appendChild($content); | ->appendChild($content); | ||||
} | } | ||||
private function buildIssueList(array $issues, $group, $fonticon) { | private function buildIssueList(array $issues, $group, $fonticon) { | ||||
assert_instances_of($issues, 'PhabricatorSetupIssue'); | assert_instances_of($issues, 'PhabricatorSetupIssue'); | ||||
$list = new PHUIObjectItemListView(); | $list = new PHUIObjectItemListView(); | ||||
$list->setBig(true); | $list->setBig(true); | ||||
$ignored_items = array(); | $ignored_items = array(); | ||||
$items = 0; | $items = 0; | ||||
foreach ($issues as $issue) { | foreach ($issues as $issue) { | ||||
if ($issue->getGroup() == $group) { | if ($issue->getGroup() != $group) { | ||||
continue; | |||||
} | |||||
$items++; | $items++; | ||||
$href = $this->getApplicationURI('/issue/'.$issue->getIssueKey().'/'); | $href = $this->getApplicationURI('/issue/'.$issue->getIssueKey().'/'); | ||||
$item = id(new PHUIObjectItemView()) | $item = id(new PHUIObjectItemView()) | ||||
->setHeader($issue->getName()) | ->setHeader($issue->getName()) | ||||
->setHref($href) | ->setHref($href) | ||||
->setClickable(true) | |||||
->addAttribute($issue->getSummary()); | ->addAttribute($issue->getSummary()); | ||||
if (!$issue->getIsIgnored()) { | if (!$issue->getIsIgnored()) { | ||||
$icon = id(new PHUIIconView()) | $icon = id(new PHUIIconView()) | ||||
->setIcon($fonticon) | ->setIcon($fonticon) | ||||
->setBackground('bg-sky'); | ->setBackground('bg-sky'); | ||||
$item->setImageIcon($icon); | $item->setImageIcon($icon); | ||||
$list->addItem($item); | $list->addItem($item); | ||||
} else { | } else { | ||||
$icon = id(new PHUIIconView()) | $icon = id(new PHUIIconView()) | ||||
->setIcon('fa-eye-slash') | ->setIcon('fa-eye-slash') | ||||
->setBackground('bg-grey'); | ->setBackground('bg-grey'); | ||||
$item->setDisabled(true); | $item->setDisabled(true); | ||||
$item->setImageIcon($icon); | $item->setImageIcon($icon); | ||||
$ignored_items[] = $item; | $ignored_items[] = $item; | ||||
} | } | ||||
} | } | ||||
} | |||||
foreach ($ignored_items as $item) { | foreach ($ignored_items as $item) { | ||||
$list->addItem($item); | $list->addItem($item); | ||||
} | } | ||||
if ($items == 0) { | if ($items == 0) { | ||||
return null; | return null; | ||||
} else { | } else { | ||||
return $list; | return $list; | ||||
} | } | ||||
} | } | ||||
} | } |