public function handleRequest(AphrontRequest $request)
 {
     $viewer = $request->getViewer();
     $view = $request->getURIData('view');
     if (!$view) {
         $view = 'all';
     }
     $pager = new PHUIPagerView();
     $pager->setOffset($request->getInt('page'));
     switch ($view) {
         case 'sampled':
             $clause = 'sampleRate > 0';
             $show_type = false;
             break;
         case 'my-runs':
             $clause = qsprintf(id(new PhabricatorXHProfSample())->establishConnection('r'), 'sampleRate = 0 AND userPHID = %s', $request->getUser()->getPHID());
             $show_type = false;
             break;
         case 'manual':
             $clause = 'sampleRate = 0';
             $show_type = false;
             break;
         case 'all':
         default:
             $clause = '1 = 1';
             $show_type = true;
             break;
     }
     $samples = id(new PhabricatorXHProfSample())->loadAllWhere('%Q ORDER BY id DESC LIMIT %d, %d', $clause, $pager->getOffset(), $pager->getPageSize() + 1);
     $samples = $pager->sliceResults($samples);
     $pager->setURI($request->getRequestURI(), 'page');
     $list = new PHUIObjectItemListView();
     foreach ($samples as $sample) {
         $file_phid = $sample->getFilePHID();
         $item = id(new PHUIObjectItemView())->setObjectName($sample->getID())->setHeader($sample->getRequestPath())->setHref($this->getApplicationURI('profile/' . $file_phid . '/'))->addAttribute(number_format($sample->getUsTotal()) . " μs");
         if ($sample->getController()) {
             $item->addAttribute($sample->getController());
         }
         $item->addAttribute($sample->getHostName());
         $rate = $sample->getSampleRate();
         if ($rate == 0) {
             $item->addIcon('flag-6', pht('Manual Run'));
         } else {
             $item->addIcon('flag-7', pht('Sampled (1/%d)', $rate));
         }
         $item->addIcon('none', phabricator_datetime($sample->getDateCreated(), $viewer));
         $list->addItem($item);
     }
     $list->setPager($pager);
     $list->setNoDataString(pht('There are no profiling samples.'));
     $crumbs = $this->buildApplicationCrumbs();
     $crumbs->addTextCrumb(pht('XHProf Samples'));
     $title = pht('XHProf Samples');
     return $this->newPage()->setTitle($title)->setCrumbs($crumbs)->appendChild($list);
 }
 public function processRequest()
 {
     $request = $this->getRequest();
     $user = $request->getUser();
     $pager = new AphrontPagerView();
     $pager->setOffset($request->getInt('page'));
     switch ($this->view) {
         case 'sampled':
             $clause = '`sampleRate` > 0';
             $show_type = false;
             break;
         case 'my-runs':
             $clause = qsprintf(id(new PhabricatorXHProfSample())->establishConnection('r'), '`sampleRate` = 0 AND `userPHID` = %s', $request->getUser()->getPHID());
             $show_type = false;
             break;
         case 'manual':
             $clause = '`sampleRate` = 0';
             $show_type = false;
             break;
         case 'all':
         default:
             $clause = '1 = 1';
             $show_type = true;
             break;
     }
     $samples = id(new PhabricatorXHProfSample())->loadAllWhere('%Q ORDER BY id DESC LIMIT %d, %d', $clause, $pager->getOffset(), $pager->getPageSize() + 1);
     $samples = $pager->sliceResults($samples);
     $pager->setURI($request->getRequestURI(), 'page');
     $list = new PHUIObjectItemListView();
     foreach ($samples as $sample) {
         $file_phid = $sample->getFilePHID();
         $item = id(new PHUIObjectItemView())->setObjectName($sample->getID())->setHeader($sample->getRequestPath())->setHref($this->getApplicationURI('profile/' . $file_phid . '/'))->addAttribute(number_format($sample->getUsTotal()) . " μs");
         if ($sample->getController()) {
             $item->addAttribute($sample->getController());
         }
         $item->addAttribute($sample->getHostName());
         $rate = $sample->getSampleRate();
         if ($rate == 0) {
             $item->addIcon('flag-6', pht('Manual Run'));
         } else {
             $item->addIcon('flag-7', pht('Sampled (1/%d)', $rate));
         }
         $item->addIcon('none', phabricator_datetime($sample->getDateCreated(), $user));
         $list->addItem($item);
     }
     $list->setPager($pager);
     return $this->buildStandardPageResponse($list, array('title' => pht('XHProf Samples'), 'device' => true));
 }
 public function processRequest()
 {
     $request = $this->getRequest();
     $user = $request->getUser();
     $pager = id(new AphrontCursorPagerView())->readFromRequest($request);
     $tokens_given = id(new PhabricatorTokenGivenQuery())->setViewer($user)->executeWithCursorPager($pager);
     $handles = array();
     if ($tokens_given) {
         $object_phids = mpull($tokens_given, 'getObjectPHID');
         $user_phids = mpull($tokens_given, 'getAuthorPHID');
         $handle_phids = array_merge($object_phids, $user_phids);
         $handles = id(new PhabricatorHandleQuery())->setViewer($user)->withPHIDs($handle_phids)->execute();
     }
     $tokens = array();
     if ($tokens_given) {
         $token_phids = mpull($tokens_given, 'getTokenPHID');
         $tokens = id(new PhabricatorTokenQuery())->setViewer($user)->withPHIDs($token_phids)->execute();
         $tokens = mpull($tokens, null, 'getPHID');
     }
     $list = new PHUIObjectItemListView();
     foreach ($tokens_given as $token_given) {
         $handle = $handles[$token_given->getObjectPHID()];
         $token = idx($tokens, $token_given->getTokenPHID());
         $item = id(new PHUIObjectItemView());
         $item->setHeader($handle->getFullName());
         $item->setHref($handle->getURI());
         $item->addAttribute($token->renderIcon());
         $item->addAttribute(pht('Given by %s on %s', $handles[$token_given->getAuthorPHID()]->renderLink(), phabricator_date($token_given->getDateCreated(), $user)));
         $list->addItem($item);
     }
     $list->setPager($pager);
     $title = pht('Tokens Given');
     $nav = $this->buildSideNav();
     $nav->setCrumbs($this->buildApplicationCrumbs()->addTextCrumb($title));
     $nav->selectFilter('given/');
     $nav->appendChild($list);
     return $this->buildApplicationPage($nav, array('title' => $title));
 }