[ Index ]

PHP Cross Reference of Phabricator

title

Body

[close]

/src/applications/tokens/controller/ -> PhabricatorTokenGivenController.php (source)

   1  <?php
   2  
   3  final class PhabricatorTokenGivenController extends PhabricatorTokenController {
   4  
   5    public function shouldAllowPublic() {
   6      return true;
   7    }
   8  
   9    public function processRequest() {
  10      $request = $this->getRequest();
  11      $user = $request->getUser();
  12  
  13      $pager = id(new AphrontCursorPagerView())
  14        ->readFromRequest($request);
  15  
  16      $tokens_given = id(new PhabricatorTokenGivenQuery())
  17        ->setViewer($user)
  18        ->executeWithCursorPager($pager);
  19  
  20      $handles = array();
  21      if ($tokens_given) {
  22        $object_phids = mpull($tokens_given, 'getObjectPHID');
  23        $user_phids = mpull($tokens_given, 'getAuthorPHID');
  24        $handle_phids = array_merge($object_phids, $user_phids);
  25        $handles = id(new PhabricatorHandleQuery())
  26          ->setViewer($user)
  27          ->withPHIDs($handle_phids)
  28          ->execute();
  29      }
  30  
  31      $tokens = array();
  32      if ($tokens_given) {
  33        $token_phids = mpull($tokens_given, 'getTokenPHID');
  34        $tokens = id(new PhabricatorTokenQuery())
  35          ->setViewer($user)
  36          ->withPHIDs($token_phids)
  37          ->execute();
  38        $tokens = mpull($tokens, null, 'getPHID');
  39      }
  40  
  41      $list = new PHUIObjectItemListView();
  42      foreach ($tokens_given as $token_given) {
  43        $handle = $handles[$token_given->getObjectPHID()];
  44        $token = idx($tokens, $token_given->getTokenPHID());
  45  
  46        $item = id(new PHUIObjectItemView());
  47        $item->setHeader($handle->getFullName());
  48        $item->setHref($handle->getURI());
  49  
  50        $item->addAttribute($token->renderIcon());
  51  
  52        $item->addAttribute(
  53          pht(
  54            'Given by %s on %s',
  55            $handles[$token_given->getAuthorPHID()]->renderLink(),
  56            phabricator_date($token_given->getDateCreated(), $user)));
  57  
  58        $list->addItem($item);
  59      }
  60      $list->setPager($pager);
  61  
  62      $title = pht('Tokens Given');
  63  
  64      $nav = $this->buildSideNav();
  65      $nav->setCrumbs(
  66        $this->buildApplicationCrumbs()
  67          ->addTextCrumb($title));
  68      $nav->selectFilter('given/');
  69  
  70      $nav->appendChild($list);
  71  
  72      return $this->buildApplicationPage(
  73        $nav,
  74        array(
  75          'title' => $title,
  76        ));
  77    }
  78  
  79  
  80  }


Generated: Sun Nov 30 09:20:46 2014 Cross-referenced by PHPXref 0.7.1