Changeset View
Changeset View
Standalone View
Standalone View
src/applications/drydock/query/DrydockBlueprintSearchEngine.php
Show First 20 Lines • Show All 71 Lines • ▼ Show 20 Lines | final class DrydockBlueprintSearchEngine | ||||
protected function renderResultList( | protected function renderResultList( | ||||
array $blueprints, | array $blueprints, | ||||
PhabricatorSavedQuery $query, | PhabricatorSavedQuery $query, | ||||
array $handles) { | array $handles) { | ||||
assert_instances_of($blueprints, 'DrydockBlueprint'); | assert_instances_of($blueprints, 'DrydockBlueprint'); | ||||
$viewer = $this->requireViewer(); | $viewer = $this->requireViewer(); | ||||
if ($blueprints) { | |||||
$edge_query = id(new PhabricatorEdgeQuery()) | |||||
->withSourcePHIDs(mpull($blueprints, 'getPHID')) | |||||
->withEdgeTypes( | |||||
array( | |||||
PhabricatorProjectObjectHasProjectEdgeType::EDGECONST, | |||||
)); | |||||
$edge_query->execute(); | |||||
} | |||||
$view = new PHUIObjectItemListView(); | $view = new PHUIObjectItemListView(); | ||||
foreach ($blueprints as $blueprint) { | foreach ($blueprints as $blueprint) { | ||||
$impl = $blueprint->getImplementation(); | |||||
$item = id(new PHUIObjectItemView()) | $item = id(new PHUIObjectItemView()) | ||||
->setHeader($blueprint->getBlueprintName()) | ->setHeader($blueprint->getBlueprintName()) | ||||
->setHref($this->getApplicationURI('/blueprint/'.$blueprint->getID())) | ->setHref($blueprint->getURI()) | ||||
->setObjectName(pht('Blueprint %d', $blueprint->getID())); | ->setObjectName(pht('Blueprint %d', $blueprint->getID())); | ||||
if (!$blueprint->getImplementation()->isEnabled()) { | if (!$impl->isEnabled()) { | ||||
$item->setDisabled(true); | $item->setDisabled(true); | ||||
$item->addIcon('fa-chain-broken grey', pht('Implementation')); | $item->addIcon('fa-chain-broken grey', pht('Implementation')); | ||||
} | } | ||||
if ($blueprint->getIsDisabled()) { | if ($blueprint->getIsDisabled()) { | ||||
$item->setDisabled(true); | $item->setDisabled(true); | ||||
$item->addIcon('fa-ban grey', pht('Disabled')); | $item->addIcon('fa-ban grey', pht('Disabled')); | ||||
} | } | ||||
$item->addAttribute($blueprint->getImplementation()->getBlueprintName()); | $impl_icon = $impl->getBlueprintIcon(); | ||||
$impl_name = $impl->getBlueprintName(); | |||||
$impl_icon = id(new PHUIIconView()) | |||||
->setIcon($impl_icon, 'lightgreytext'); | |||||
$item->addAttribute(array($impl_icon, ' ', $impl_name)); | |||||
$phid = $blueprint->getPHID(); | |||||
$project_phids = $edge_query->getDestinationPHIDs(array($phid)); | |||||
if ($project_phids) { | |||||
$project_handles = $viewer->loadHandles($project_phids); | |||||
$item->addAttribute( | |||||
id(new PHUIHandleTagListView()) | |||||
->setLimit(4) | |||||
->setSlim(true) | |||||
->setHandles($project_handles)); | |||||
} | |||||
$view->addItem($item); | $view->addItem($item); | ||||
} | } | ||||
$result = new PhabricatorApplicationSearchResultView(); | $result = new PhabricatorApplicationSearchResultView(); | ||||
$result->setObjectList($view); | $result->setObjectList($view); | ||||
$result->setNoDataString(pht('No blueprints found.')); | $result->setNoDataString(pht('No blueprints found.')); | ||||
return $result; | return $result; | ||||
} | } | ||||
} | } |