Path: blob/master/src/applications/badges/view/PhabricatorBadgesRecipientsListView.php
12256 views
<?php12final class PhabricatorBadgesRecipientsListView extends AphrontView {34private $badge;5private $awards;6private $handles;78public function setBadge(PhabricatorBadgesBadge $badge) {9$this->badge = $badge;10return $this;11}1213public function setAwards(array $awards) {14$this->awards = $awards;15return $this;16}1718public function setHandles(array $handles) {19$this->handles = $handles;20return $this;21}2223public function render() {24$viewer = $this->getViewer();2526$badge = $this->badge;27$handles = $this->handles;28$awards = mpull($this->awards, null, 'getRecipientPHID');2930$can_edit = PhabricatorPolicyFilter::hasCapability(31$viewer,32$badge,33PhabricatorPolicyCapability::CAN_EDIT);3435$award_button = id(new PHUIButtonView())36->setTag('a')37->setIcon('fa-plus')38->setText(pht('Add Recipients'))39->setWorkflow(true)40->setDisabled(!$can_edit)41->setHref('/badges/recipients/'.$badge->getID().'/add/');4243$header = id(new PHUIHeaderView())44->setHeader(pht('Recipients'))45->addActionLink($award_button);4647$list = id(new PHUIObjectItemListView())48->setNoDataString(pht('This badge does not have any recipients.'))49->setFlush(true);5051foreach ($handles as $handle) {52$remove_uri = '/badges/recipients/'.53$badge->getID().'/remove/?phid='.$handle->getPHID();5455$award = $awards[$handle->getPHID()];56$awarder_handle = $viewer->renderHandle($award->getAwarderPHID());57$award_date = phabricator_date($award->getDateCreated(), $viewer);58$awarder_info = pht(59'Awarded by %s on %s',60$awarder_handle->render(),61$award_date);6263$item = id(new PHUIObjectItemView())64->setHeader($handle->getFullName())65->setSubhead($awarder_info)66->setHref($handle->getURI())67->setImageURI($handle->getImageURI());6869if ($can_edit) {70$item->addAction(71id(new PHUIListItemView())72->setIcon('fa-times')73->setName(pht('Remove'))74->setHref($remove_uri)75->setWorkflow(true));76}7778$list->addItem($item);79}8081$box = id(new PHUIObjectBoxView())82->setHeader($header)83->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)84->setObjectList($list);8586return $box;87}8889}909192