private function buildBrowseTable($browse_results, $browse_paths, $browse_exception, array $handles, PHUIPagerView $pager)
 {
     require_celerity_resource('diffusion-icons-css');
     $request = $this->getRequest();
     $viewer = $request->getUser();
     $drequest = $this->getDiffusionRequest();
     $repository = $drequest->getRepository();
     if ($browse_exception) {
         if ($repository->isImporting()) {
             // The history table renders a useful message.
             return null;
         } else {
             return $this->renderStatusMessage(pht('Unable to Retrieve Paths'), $browse_exception->getMessage());
         }
     }
     $browse_table = id(new DiffusionBrowseTableView())->setUser($viewer)->setDiffusionRequest($drequest)->setHandles($handles);
     if ($browse_paths) {
         $browse_table->setPaths($browse_paths);
     } else {
         $browse_table->setPaths(array());
     }
     $browse_uri = $drequest->generateURI(array('action' => 'browse'));
     $browse_panel = id(new PHUIObjectBoxView())->setBackground(PHUIObjectBoxView::BLUE_PROPERTY);
     $header = id(new PHUIHeaderView())->setHeader($repository->getName());
     $icon = id(new PHUIIconView())->setIcon('fa-folder-open');
     $button = new PHUIButtonView();
     $button->setText(pht('Browse Repository'));
     $button->setTag('a');
     $button->setIcon($icon);
     $button->setHref($browse_uri);
     $header->addActionLink($button);
     $browse_panel->setHeader($header);
     $browse_panel->setTable($browse_table);
     $pager->setURI($browse_uri, 'offset');
     if ($pager->willShowPagingControls()) {
         $pager_box = $this->renderTablePagerBox($pager);
     } else {
         $pager_box = null;
     }
     return array($browse_panel, $pager_box);
 }
 private function buildBrowseTable($browse_results, $browse_paths, $browse_exception, array $handles, PHUIPagerView $pager)
 {
     require_celerity_resource('diffusion-icons-css');
     $request = $this->getRequest();
     $viewer = $request->getUser();
     $drequest = $this->getDiffusionRequest();
     $repository = $drequest->getRepository();
     if ($browse_exception) {
         if ($repository->isImporting()) {
             // The history table renders a useful message.
             return null;
         } else {
             return $this->renderStatusMessage(pht('Unable to Retrieve Paths'), $browse_exception->getMessage());
         }
     }
     $browse_table = id(new DiffusionBrowseTableView())->setUser($viewer)->setDiffusionRequest($drequest)->setHandles($handles);
     if ($browse_paths) {
         $browse_table->setPaths($browse_paths);
     } else {
         $browse_table->setPaths(array());
     }
     $browse_uri = $drequest->generateURI(array('action' => 'browse'));
     $browse_panel = new PHUIObjectBoxView();
     $header = id(new PHUIHeaderView())->setHeader(pht('Repository'));
     $icon = id(new PHUIIconView())->setIcon('fa-folder-open');
     $button = new PHUIButtonView();
     $button->setText(pht('Browse Repository'));
     $button->setTag('a');
     $button->setIcon($icon);
     $button->setHref($browse_uri);
     $header->addActionLink($button);
     $browse_panel->setHeader($header);
     $locate_panel = null;
     if ($repository->canUsePathTree()) {
         Javelin::initBehavior('diffusion-locate-file', array('controlID' => 'locate-control', 'inputID' => 'locate-input', 'browseBaseURI' => (string) $drequest->generateURI(array('action' => 'browse')), 'uri' => (string) $drequest->generateURI(array('action' => 'pathtree'))));
         $form = id(new AphrontFormView())->setUser($viewer)->appendChild(id(new AphrontFormTypeaheadControl())->setHardpointID('locate-control')->setID('locate-input')->setLabel(pht('Locate File')));
         $form_box = id(new PHUIBoxView())->appendChild($form->buildLayoutView());
         $locate_panel = id(new PHUIObjectBoxView())->setHeaderText('Locate File')->appendChild($form_box);
     }
     $browse_panel->setTable($browse_table);
     $pager->setURI($browse_uri, 'offset');
     if ($pager->willShowPagingControls()) {
         $pager_box = $this->renderTablePagerBox($pager);
     } else {
         $pager_box = null;
     }
     return array($locate_panel, $browse_panel, $pager_box);
 }