Differential D15355 Diff 37031 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 179 Lines • ▼ Show 20 Lines | protected function renderResultList( | ||||
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(); | $phids = array(); | ||||
foreach ($buildables as $buildable) { | foreach ($buildables as $buildable) { | ||||
$phids[] = $buildable->getBuildableObject() | |||||
->getHarbormasterBuildableDisplayPHID(); | |||||
$phids[] = $buildable->getContainerPHID(); | $phids[] = $buildable->getContainerPHID(); | ||||
$phids[] = $buildable->getBuildablePHID(); | $phids[] = $buildable->getBuildablePHID(); | ||||
} | } | ||||
$handles = $viewer->loadHandles($phids); | $handles = $viewer->loadHandles($phids); | ||||
$list = new PHUIObjectItemListView(); | $list = new PHUIObjectItemListView(); | ||||
foreach ($buildables as $buildable) { | foreach ($buildables as $buildable) { | ||||
$id = $buildable->getID(); | $id = $buildable->getID(); | ||||
$display_phid = $buildable->getBuildableObject() | |||||
->getHarbormasterBuildableDisplayPHID(); | |||||
$container_phid = $buildable->getContainerPHID(); | $container_phid = $buildable->getContainerPHID(); | ||||
$buildable_phid = $buildable->getBuildablePHID(); | $buildable_phid = $buildable->getBuildablePHID(); | ||||
$item = id(new PHUIObjectItemView()) | $item = id(new PHUIObjectItemView()) | ||||
->setHeader(pht('Buildable %d', $buildable->getID())); | ->setObjectName(pht('Buildable %d', $buildable->getID())); | ||||
if ($display_phid) { | |||||
$handle = $handles[$display_phid]; | |||||
$item->setHeader($handle->getFullName()); | |||||
} | |||||
if ($container_phid) { | if ($container_phid && ($container_phid != $display_phid)) { | ||||
$handle = $handles[$container_phid]; | $handle = $handles[$container_phid]; | ||||
$item->addAttribute($handle->getName()); | $item->addAttribute($handle->getName()); | ||||
} | } | ||||
if ($buildable_phid) { | if ($buildable_phid && ($buildable_phid != $display_phid)) { | ||||
$handle = $handles[$buildable_phid]; | $handle = $handles[$buildable_phid]; | ||||
$item->addAttribute($handle->getFullName()); | $item->addAttribute($handle->getFullName()); | ||||
} | } | ||||
$item->setHref($buildable->getURI()); | $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 '. | $status = $buildable->getBuildableStatus(); | ||||
HarbormasterBuildable::getBuildableStatusColor( | |||||
$buildable->getBuildableStatus())); | |||||
$item->addByline(HarbormasterBuildable::getBuildableStatusName( | |||||
$buildable->getBuildableStatus())); | |||||
$list->addItem($item); | $status_icon = HarbormasterBuildable::getBuildableStatusIcon($status); | ||||
$status_color = HarbormasterBuildable::getBuildableStatusColor($status); | |||||
$status_label = HarbormasterBuildable::getBuildableStatusName($status); | |||||
$item->setStatusIcon("{$status_icon} {$status_color}", $status_label); | |||||
$list->addItem($item); | |||||
} | } | ||||
$result = new PhabricatorApplicationSearchResultView(); | $result = new PhabricatorApplicationSearchResultView(); | ||||
$result->setObjectList($list); | $result->setObjectList($list); | ||||
$result->setNoDataString(pht('No buildables found.')); | $result->setNoDataString(pht('No buildables found.')); | ||||
return $result; | return $result; | ||||
} | } | ||||
} | } |