Changeset View
Changeset View
Standalone View
Standalone View
src/applications/diffusion/controller/DiffusionBrowseController.php
| Show First 20 Lines • Show All 286 Lines • ▼ Show 20 Lines | public function browseDirectory( | ||||
| $this->buildActionButtons($drequest, true); | $this->buildActionButtons($drequest, true); | ||||
| $details = $this->buildPropertyView($drequest); | $details = $this->buildPropertyView($drequest); | ||||
| $header = $this->buildHeaderView($drequest); | $header = $this->buildHeaderView($drequest); | ||||
| $header->setHeaderIcon('fa-folder-open'); | $header->setHeaderIcon('fa-folder-open'); | ||||
| $empty_result = null; | $empty_result = null; | ||||
| $browse_panel = null; | $browse_panel = null; | ||||
| $branch_panel = null; | |||||
| if (!$results->isValidResults()) { | if (!$results->isValidResults()) { | ||||
| $empty_result = new DiffusionEmptyResultView(); | $empty_result = new DiffusionEmptyResultView(); | ||||
| $empty_result->setDiffusionRequest($drequest); | $empty_result->setDiffusionRequest($drequest); | ||||
| $empty_result->setDiffusionBrowseResultSet($results); | $empty_result->setDiffusionBrowseResultSet($results); | ||||
| $empty_result->setView($request->getStr('view')); | $empty_result->setView($request->getStr('view')); | ||||
| } else { | } else { | ||||
| $phids = array(); | $phids = array(); | ||||
| foreach ($results->getPaths() as $result) { | foreach ($results->getPaths() as $result) { | ||||
| Show All 19 Lines | if (!$results->isValidResults()) { | ||||
| $browse_header = $this->buildPanelHeaderView($title, $icon); | $browse_header = $this->buildPanelHeaderView($title, $icon); | ||||
| $browse_panel = id(new PHUIObjectBoxView()) | $browse_panel = id(new PHUIObjectBoxView()) | ||||
| ->setHeader($browse_header) | ->setHeader($browse_header) | ||||
| ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY) | ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY) | ||||
| ->setTable($browse_table) | ->setTable($browse_table) | ||||
| ->addClass('diffusion-mobile-view') | ->addClass('diffusion-mobile-view') | ||||
| ->setPager($pager); | ->setPager($pager); | ||||
| $path = $drequest->getPath(); | |||||
| $is_branch = (!strlen($path) && $repository->supportsBranchComparison()); | |||||
| if ($is_branch) { | |||||
| $branch_panel = $this->buildBranchTable(); | |||||
| } | |||||
| } | } | ||||
| $open_revisions = $this->buildOpenRevisions(); | $open_revisions = $this->buildOpenRevisions(); | ||||
| $readme = $this->renderDirectoryReadme($results); | $readme = $this->renderDirectoryReadme($results); | ||||
| $crumbs = $this->buildCrumbs( | $crumbs = $this->buildCrumbs( | ||||
| array( | array( | ||||
| 'branch' => true, | 'branch' => true, | ||||
| Show All 9 Lines | $bar = id(new PHUILeftRightView()) | ||||
| ->addClass('diffusion-action-bar'); | ->addClass('diffusion-action-bar'); | ||||
| $view = id(new PHUITwoColumnView()) | $view = id(new PHUITwoColumnView()) | ||||
| ->setHeader($header) | ->setHeader($header) | ||||
| ->setTabs($tabs) | ->setTabs($tabs) | ||||
| ->setFooter( | ->setFooter( | ||||
| array( | array( | ||||
| $bar, | $bar, | ||||
| $branch_panel, | |||||
| $empty_result, | $empty_result, | ||||
| $browse_panel, | $browse_panel, | ||||
| $open_revisions, | $open_revisions, | ||||
| $owners_list, | $owners_list, | ||||
| $readme, | $readme, | ||||
| )); | )); | ||||
| if ($details) { | if ($details) { | ||||
| ▲ Show 20 Lines • Show All 698 Lines • ▼ Show 20 Lines | if (!$file) { | ||||
| pht( | pht( | ||||
| 'Failed to load file object for Git LFS ref "%s"!', | 'Failed to load file object for Git LFS ref "%s"!', | ||||
| $ref->getObjectHash())); | $ref->getObjectHash())); | ||||
| } | } | ||||
| return $file; | return $file; | ||||
| } | } | ||||
| private function buildBranchTable() { | |||||
| $viewer = $this->getViewer(); | |||||
| $drequest = $this->getDiffusionRequest(); | |||||
| $repository = $drequest->getRepository(); | |||||
| $branch = $drequest->getBranch(); | |||||
| $default_branch = $repository->getDefaultBranch(); | |||||
| if ($branch === $default_branch) { | |||||
| return null; | |||||
| } | |||||
| $pager = id(new PHUIPagerView()) | |||||
| ->setPageSize(10); | |||||
| try { | |||||
| $results = $this->callConduitWithDiffusionRequest( | |||||
| 'diffusion.historyquery', | |||||
| array( | |||||
| 'commit' => $branch, | |||||
| 'against' => $default_branch, | |||||
| 'path' => $drequest->getPath(), | |||||
| 'offset' => $pager->getOffset(), | |||||
| 'limit' => $pager->getPageSize() + 1, | |||||
| )); | |||||
| } catch (Exception $ex) { | |||||
| return null; | |||||
| } | |||||
| $history = DiffusionPathChange::newFromConduit($results['pathChanges']); | |||||
| $history = $pager->sliceResults($history); | |||||
| if (!$history) { | |||||
| return null; | |||||
| } | |||||
| $history_table = id(new DiffusionHistoryTableView()) | |||||
| ->setViewer($viewer) | |||||
| ->setDiffusionRequest($drequest) | |||||
| ->setHistory($history) | |||||
| ->setParents($results['parents']) | |||||
| ->setFilterParents(true) | |||||
| ->setIsHead(true) | |||||
| ->setIsTail(!$pager->getHasMorePages()); | |||||
| $header = id(new PHUIHeaderView()) | |||||
| ->setHeader(pht('%s vs %s', $branch, $default_branch)); | |||||
| return id(new PHUIObjectBoxView()) | |||||
| ->setHeader($header) | |||||
| ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY) | |||||
| ->addClass('diffusion-mobile-view') | |||||
| ->setTable($history_table); | |||||
| } | |||||
| } | } | ||||