Differential D20702 Diff 49371 src/applications/people/controller/PhabricatorPeopleProfileBadgesController.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/people/controller/PhabricatorPeopleProfileBadgesController.php
| Show All 28 Lines | public function handleRequest(AphrontRequest $request) { | ||||
| $crumbs = $this->buildApplicationCrumbs(); | $crumbs = $this->buildApplicationCrumbs(); | ||||
| $crumbs->addTextCrumb(pht('Badges')); | $crumbs->addTextCrumb(pht('Badges')); | ||||
| $crumbs->setBorder(true); | $crumbs->setBorder(true); | ||||
| $nav = $this->newNavigation( | $nav = $this->newNavigation( | ||||
| $user, | $user, | ||||
| PhabricatorPeopleProfileMenuEngine::ITEM_BADGES); | PhabricatorPeopleProfileMenuEngine::ITEM_BADGES); | ||||
| // Best option? | |||||
| $badges = id(new PhabricatorBadgesQuery()) | |||||
| ->setViewer($viewer) | |||||
| ->withStatuses(array( | |||||
| PhabricatorBadgesBadge::STATUS_ACTIVE, | |||||
| )) | |||||
| ->requireCapabilities( | |||||
| array( | |||||
| PhabricatorPolicyCapability::CAN_VIEW, | |||||
| PhabricatorPolicyCapability::CAN_EDIT, | |||||
| )) | |||||
| ->setLimit(1) | |||||
| ->execute(); | |||||
| $button = id(new PHUIButtonView()) | $button = id(new PHUIButtonView()) | ||||
| ->setTag('a') | ->setTag('a') | ||||
| ->setIcon('fa-plus') | ->setIcon('fa-plus') | ||||
| ->setText(pht('Award Badge')) | ->setText(pht('Award Badge')) | ||||
| ->setWorkflow(true) | ->setWorkflow(true) | ||||
| ->setHref('/badges/award/'.$user->getID().'/'); | ->setHref('/badges/award/'.$user->getID().'/'); | ||||
| if ($badges) { | |||||
| $header->addActionLink($button); | $header->addActionLink($button); | ||||
| } | |||||
| $view = id(new PHUITwoColumnView()) | $view = id(new PHUITwoColumnView()) | ||||
| ->setHeader($header) | ->setHeader($header) | ||||
| ->addClass('project-view-home') | ->addClass('project-view-home') | ||||
| ->addClass('project-view-people-home') | ->addClass('project-view-people-home') | ||||
| ->setFooter(array( | ->setFooter( | ||||
| $this->buildBadgesView($user) | array( | ||||
epriestley: Also: stop building this twice. Once is plenty. | |||||
| $badges, | |||||
| )); | )); | ||||
| return $this->newPage() | return $this->newPage() | ||||
| ->setTitle($title) | ->setTitle($title) | ||||
| ->setCrumbs($crumbs) | ->setCrumbs($crumbs) | ||||
| ->setNavigation($nav) | ->setNavigation($nav) | ||||
| ->appendChild($view); | ->appendChild($view); | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 52 Lines • Show Last 20 Lines | |||||
Also: stop building this twice. Once is plenty.