Differential D15354 Diff 37030 src/applications/harbormaster/query/HarbormasterBuildableSearchEngine.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/harbormaster/query/HarbormasterBuildableSearchEngine.php
Show First 20 Lines • Show All 52 Lines • ▼ Show 20 Lines | public function buildSavedQueryFromRequest(AphrontRequest $request) { | ||||
$saved->setParameter( | $saved->setParameter( | ||||
'manual', | 'manual', | ||||
$this->readBoolFromRequest($request, 'manual')); | $this->readBoolFromRequest($request, 'manual')); | ||||
return $saved; | return $saved; | ||||
} | } | ||||
public function buildQueryFromSavedQuery(PhabricatorSavedQuery $saved) { | public function buildQueryFromSavedQuery(PhabricatorSavedQuery $saved) { | ||||
$query = id(new HarbormasterBuildableQuery()) | $query = id(new HarbormasterBuildableQuery()); | ||||
->needContainerHandles(true) | |||||
->needBuildableHandles(true); | |||||
$container_phids = $saved->getParameter('containerPHIDs', array()); | $container_phids = $saved->getParameter('containerPHIDs', array()); | ||||
if ($container_phids) { | if ($container_phids) { | ||||
$query->withContainerPHIDs($container_phids); | $query->withContainerPHIDs($container_phids); | ||||
} | } | ||||
$buildable_phids = $saved->getParameter('buildablePHIDs', array()); | $buildable_phids = $saved->getParameter('buildablePHIDs', array()); | ||||
▲ Show 20 Lines • Show All 108 Lines • ▼ Show 20 Lines | final class HarbormasterBuildableSearchEngine | ||||
protected function renderResultList( | protected function renderResultList( | ||||
array $buildables, | array $buildables, | ||||
PhabricatorSavedQuery $query, | PhabricatorSavedQuery $query, | ||||
array $handles) { | array $handles) { | ||||
assert_instances_of($buildables, 'HarbormasterBuildable'); | assert_instances_of($buildables, 'HarbormasterBuildable'); | ||||
$viewer = $this->requireViewer(); | $viewer = $this->requireViewer(); | ||||
$phids = array(); | |||||
foreach ($buildables as $buildable) { | |||||
$phids[] = $buildable->getContainerPHID(); | |||||
$phids[] = $buildable->getBuildablePHID(); | |||||
} | |||||
$handles = $viewer->loadHandles($phids); | |||||
$list = new PHUIObjectItemListView(); | $list = new PHUIObjectItemListView(); | ||||
foreach ($buildables as $buildable) { | foreach ($buildables as $buildable) { | ||||
$id = $buildable->getID(); | $id = $buildable->getID(); | ||||
$container_phid = $buildable->getContainerPHID(); | |||||
$buildable_phid = $buildable->getBuildablePHID(); | |||||
$item = id(new PHUIObjectItemView()) | $item = id(new PHUIObjectItemView()) | ||||
->setHeader(pht('Buildable %d', $buildable->getID())); | ->setHeader(pht('Buildable %d', $buildable->getID())); | ||||
if ($buildable->getContainerHandle() !== null) { | |||||
$item->addAttribute($buildable->getContainerHandle()->getName()); | if ($container_phid) { | ||||
} | $handle = $handles[$container_phid]; | ||||
if ($buildable->getBuildableHandle() !== null) { | $item->addAttribute($handle->getName()); | ||||
$item->addAttribute($buildable->getBuildableHandle()->getFullName()); | |||||
} | } | ||||
if ($id) { | if ($buildable_phid) { | ||||
$item->setHref("/B{$id}"); | $handle = $handles[$buildable_phid]; | ||||
$item->addAttribute($handle->getFullName()); | |||||
} | } | ||||
$item->setHref($buildable->getURI()); | |||||
if ($buildable->getIsManualBuildable()) { | if ($buildable->getIsManualBuildable()) { | ||||
$item->addIcon('fa-wrench grey', pht('Manual')); | $item->addIcon('fa-wrench grey', pht('Manual')); | ||||
} | } | ||||
$item->setStatusIcon('fa-wrench '. | $item->setStatusIcon('fa-wrench '. | ||||
HarbormasterBuildable::getBuildableStatusColor( | HarbormasterBuildable::getBuildableStatusColor( | ||||
$buildable->getBuildableStatus())); | $buildable->getBuildableStatus())); | ||||
$item->addByline(HarbormasterBuildable::getBuildableStatusName( | $item->addByline(HarbormasterBuildable::getBuildableStatusName( | ||||
Show All 14 Lines |