public function handleRequest(AphrontRequest $request) { $viewer = $request->getViewer(); $id = $request->getURIData('id'); $badge = id(new PhabricatorBadgesQuery())->setViewer($viewer)->withIDs(array($id))->needRecipients(true)->executeOne(); if (!$badge) { return new Aphront404Response(); } $crumbs = $this->buildApplicationCrumbs(); $crumbs->addTextCrumb($badge->getName()); $title = $badge->getName(); if ($badge->isClosed()) { $status_icon = 'fa-ban'; $status_color = 'dark'; } else { $status_icon = 'fa-check'; $status_color = 'bluegrey'; } $status_name = idx(PhabricatorBadgesBadge::getStatusNameMap(), $badge->getStatus()); $header = id(new PHUIHeaderView())->setHeader($badge->getName())->setUser($viewer)->setPolicyObject($badge)->setStatus($status_icon, $status_color, $status_name); $properties = $this->buildPropertyListView($badge); $actions = $this->buildActionListView($badge); $properties->setActionList($actions); $box = id(new PHUIObjectBoxView())->setHeader($header)->addPropertyList($properties); $timeline = $this->buildTransactionTimeline($badge, new PhabricatorBadgesTransactionQuery()); $recipient_phids = $badge->getRecipientPHIDs(); $recipient_phids = array_reverse($recipient_phids); $handles = $this->loadViewerHandles($recipient_phids); $recipient_list = id(new PhabricatorBadgesRecipientsListView())->setBadge($badge)->setHandles($handles)->setUser($viewer); $add_comment = $this->buildCommentForm($badge); return $this->buildApplicationPage(array($crumbs, $box, $recipient_list, $timeline, $add_comment), array('title' => $title, 'pageObjects' => array($badge->getPHID()))); }
public function handleRequest(AphrontRequest $request) { $viewer = $request->getViewer(); $id = $request->getURIData('id'); $badge = id(new PhabricatorBadgesQuery())->setViewer($viewer)->withIDs(array($id))->needRecipients(true)->executeOne(); if (!$badge) { return new Aphront404Response(); } $crumbs = $this->buildApplicationCrumbs(); $crumbs->addTextCrumb($badge->getName()); $crumbs->setBorder(true); $title = $badge->getName(); if ($badge->isArchived()) { $status_icon = 'fa-ban'; $status_color = 'dark'; } else { $status_icon = 'fa-check'; $status_color = 'bluegrey'; } $status_name = idx(PhabricatorBadgesBadge::getStatusNameMap(), $badge->getStatus()); $header = id(new PHUIHeaderView())->setHeader($badge->getName())->setUser($viewer)->setPolicyObject($badge)->setStatus($status_icon, $status_color, $status_name)->setHeaderIcon('fa-trophy'); $curtain = $this->buildCurtain($badge); $details = $this->buildDetailsView($badge); $timeline = $this->buildTransactionTimeline($badge, new PhabricatorBadgesTransactionQuery()); $awards = $badge->getAwards(); $recipient_phids = mpull($awards, 'getRecipientPHID'); $recipient_phids = array_reverse($recipient_phids); $handles = $this->loadViewerHandles($recipient_phids); $recipient_list = id(new PhabricatorBadgesRecipientsListView())->setBadge($badge)->setHandles($handles)->setUser($viewer); $comment_view = id(new PhabricatorBadgesEditEngine())->setViewer($viewer)->buildEditEngineCommentView($badge); $view = id(new PHUITwoColumnView())->setHeader($header)->setCurtain($curtain)->setMainColumn(array($recipient_list, $timeline, $comment_view))->addPropertySection(pht('Description'), $details); return $this->newPage()->setTitle($title)->setCrumbs($crumbs)->setPageObjectPHIDs(array($badge->getPHID()))->appendChild($view); }