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); | |||||
} | |||||
} | } |