Path: blob/master/src/applications/harbormaster/view/HarbormasterBuildView.php
12256 views
<?php12final class HarbormasterBuildView3extends AphrontView {45private $builds = array();67public function setBuilds(array $builds) {8assert_instances_of($builds, 'HarbormasterBuild');9$this->builds = $builds;10return $this;11}1213public function getBuilds() {14return $this->builds;15}1617public function render() {18return $this->newObjectList();19}2021public function newObjectList() {22$viewer = $this->getViewer();23$builds = $this->getBuilds();2425$buildables = mpull($builds, 'getBuildable');26$object_phids = mpull($buildables, 'getBuildablePHID');27$initiator_phids = mpull($builds, 'getInitiatorPHID');28$phids = array_mergev(array($initiator_phids, $object_phids));29$phids = array_unique(array_filter($phids));3031$handles = $viewer->loadHandles($phids);3233$list = new PHUIObjectItemListView();34foreach ($builds as $build) {35$id = $build->getID();3637$buildable_object = $handles[$build->getBuildable()->getBuildablePHID()];3839$item = id(new PHUIObjectItemView())40->setViewer($viewer)41->setObject($build)42->setObjectName($build->getObjectName())43->setHeader($build->getName())44->setHref($build->getURI())45->setEpoch($build->getDateCreated())46->addAttribute($buildable_object->getName());4748$initiator_phid = $build->getInitiatorPHID();49if ($initiator_phid) {50$initiator = $handles[$initiator_phid];51$item->addByline($initiator->renderLink());52}5354$status = $build->getBuildStatus();5556$status_icon = HarbormasterBuildStatus::getBuildStatusIcon($status);57$status_color = HarbormasterBuildStatus::getBuildStatusColor($status);58$status_label = HarbormasterBuildStatus::getBuildStatusName($status);5960$item->setStatusIcon("{$status_icon} {$status_color}", $status_label);6162$list->addItem($item);63}6465return $list;66}6768}697071