Correct a parameter order swap in "diffusion.historyquery" for Mercurial
[phabricator.git] / src / applications / tokens / controller / PhabricatorTokenLeaderController.php
blobbfef3cd8cfa39d95c3637cc40f2bab65f21e7a57
1 <?php
3 final class PhabricatorTokenLeaderController
4 extends PhabricatorTokenController {
6 public function shouldAllowPublic() {
7 return true;
10 public function handleRequest(AphrontRequest $request) {
11 $viewer = $request->getViewer();
13 $pager = new PHUIPagerView();
14 $pager->setURI($request->getRequestURI(), 'page');
15 $pager->setOffset($request->getInt('page'));
17 $query = id(new PhabricatorTokenReceiverQuery());
18 $objects = $query->setViewer($viewer)->executeWithOffsetPager($pager);
19 $counts = $query->getTokenCounts();
21 $handles = array();
22 $phids = array();
23 if ($counts) {
24 $phids = mpull($objects, 'getPHID');
25 $handles = id(new PhabricatorHandleQuery())
26 ->setViewer($viewer)
27 ->withPHIDs($phids)
28 ->execute();
31 $list = new PHUIObjectItemListView();
32 foreach ($phids as $object) {
33 $count = idx($counts, $object, 0);
34 $item = id(new PHUIObjectItemView());
35 $handle = $handles[$object];
37 $item->setHeader($handle->getFullName());
38 $item->setHref($handle->getURI());
39 $item->addAttribute(pht('Tokens: %s', $count));
40 $list->addItem($item);
43 $title = pht('Token Leader Board');
45 $box = id(new PHUIObjectBoxView())
46 ->setHeaderText($title)
47 ->setObjectList($list);
49 $nav = $this->buildSideNav();
50 $nav->setCrumbs(
51 $this->buildApplicationCrumbs()
52 ->addTextCrumb($title));
53 $nav->selectFilter('leaders/');
55 $nav->appendChild($box);
56 $nav->appendChild($pager);
58 return $this->newPage()
59 ->setTitle($title)
60 ->appendChild($nav);