Changeset View
Changeset View
Standalone View
Standalone View
src/applications/diffusion/controller/DiffusionChangeController.php
| Show All 9 Lines | public function handleRequest(AphrontRequest $request) { | ||||
| $response = $this->loadDiffusionContext(); | $response = $this->loadDiffusionContext(); | ||||
| if ($response) { | if ($response) { | ||||
| return $response; | return $response; | ||||
| } | } | ||||
| $viewer = $this->getViewer(); | $viewer = $this->getViewer(); | ||||
| $drequest = $this->getDiffusionRequest(); | $drequest = $this->getDiffusionRequest(); | ||||
| $content = array(); | |||||
| $data = $this->callConduitWithDiffusionRequest( | $data = $this->callConduitWithDiffusionRequest( | ||||
| 'diffusion.diffquery', | 'diffusion.diffquery', | ||||
| array( | array( | ||||
| 'commit' => $drequest->getCommit(), | 'commit' => $drequest->getCommit(), | ||||
| 'path' => $drequest->getPath(), | 'path' => $drequest->getPath(), | ||||
| )); | )); | ||||
| $drequest->updateSymbolicCommit($data['effectiveCommit']); | $drequest->updateSymbolicCommit($data['effectiveCommit']); | ||||
| Show All 9 Lines | if (!$changeset) { | ||||
| return new Aphront404Response(); | return new Aphront404Response(); | ||||
| } | } | ||||
| $repository = $drequest->getRepository(); | $repository = $drequest->getRepository(); | ||||
| $changesets = array( | $changesets = array( | ||||
| 0 => $changeset, | 0 => $changeset, | ||||
| ); | ); | ||||
| $changeset_header = $this->buildChangesetHeader($drequest); | |||||
| $changeset_view = new DifferentialChangesetListView(); | $changeset_view = new DifferentialChangesetListView(); | ||||
| $changeset_view->setTitle(pht('Change')); | |||||
| $changeset_view->setChangesets($changesets); | $changeset_view->setChangesets($changesets); | ||||
| $changeset_view->setBackground(PHUIObjectBoxView::BLUE_PROPERTY); | |||||
| $changeset_view->setVisibleChangesets($changesets); | $changeset_view->setVisibleChangesets($changesets); | ||||
| $changeset_view->setRenderingReferences( | $changeset_view->setRenderingReferences( | ||||
| array( | array( | ||||
| 0 => $drequest->generateURI(array('action' => 'rendering-ref')), | 0 => $drequest->generateURI(array('action' => 'rendering-ref')), | ||||
| )); | )); | ||||
| $raw_params = array( | $raw_params = array( | ||||
| 'action' => 'browse', | 'action' => 'browse', | ||||
| 'params' => array( | 'params' => array( | ||||
| 'view' => 'raw', | 'view' => 'raw', | ||||
| ), | ), | ||||
| ); | ); | ||||
| $right_uri = $drequest->generateURI($raw_params); | $right_uri = $drequest->generateURI($raw_params); | ||||
| $raw_params['params']['before'] = $drequest->getStableCommit(); | $raw_params['params']['before'] = $drequest->getStableCommit(); | ||||
| $left_uri = $drequest->generateURI($raw_params); | $left_uri = $drequest->generateURI($raw_params); | ||||
| $changeset_view->setRawFileURIs($left_uri, $right_uri); | $changeset_view->setRawFileURIs($left_uri, $right_uri); | ||||
| $changeset_view->setRenderURI($repository->getPathURI('diff/')); | $changeset_view->setRenderURI($repository->getPathURI('diff/')); | ||||
| $changeset_view->setWhitespace( | $changeset_view->setWhitespace( | ||||
| DifferentialChangesetParser::WHITESPACE_SHOW_ALL); | DifferentialChangesetParser::WHITESPACE_SHOW_ALL); | ||||
| $changeset_view->setUser($viewer); | $changeset_view->setUser($viewer); | ||||
| $changeset_view->setHeader($changeset_header); | |||||
| // TODO: This is pretty awkward, unify the CSS between Diffusion and | // TODO: This is pretty awkward, unify the CSS between Diffusion and | ||||
| // Differential better. | // Differential better. | ||||
| require_celerity_resource('differential-core-view-css'); | require_celerity_resource('differential-core-view-css'); | ||||
| $content[] = $changeset_view->render(); | |||||
| $crumbs = $this->buildCrumbs( | $crumbs = $this->buildCrumbs( | ||||
| array( | array( | ||||
| 'branch' => true, | 'branch' => true, | ||||
| 'path' => true, | 'path' => true, | ||||
| 'view' => 'change', | 'view' => 'change', | ||||
| )); | )); | ||||
| $crumbs->setBorder(true); | |||||
| $links = $this->renderPathLinks($drequest, $mode = 'browse'); | $links = $this->renderPathLinks($drequest, $mode = 'browse'); | ||||
| $header = $this->buildHeader($drequest, $links); | |||||
| $header = id(new PHUIHeaderView()) | $view = id(new PHUITwoColumnView()) | ||||
| ->setHeader($links) | |||||
| ->setUser($viewer) | |||||
| ->setPolicyObject($drequest->getRepository()); | |||||
| $actions = $this->buildActionView($drequest); | |||||
| $properties = $this->buildPropertyView($drequest, $actions); | |||||
| $object_box = id(new PHUIObjectBoxView()) | |||||
| ->setHeader($header) | ->setHeader($header) | ||||
| ->addPropertyList($properties); | ->setMainColumn(array( | ||||
| )) | |||||
| ->setFooter(array( | |||||
| $changeset_view, | |||||
| )); | |||||
| return $this->newPage() | return $this->newPage() | ||||
| ->setTitle( | ->setTitle( | ||||
| array( | array( | ||||
| basename($drequest->getPath()), | basename($drequest->getPath()), | ||||
| $repository->getDisplayName(), | $repository->getDisplayName(), | ||||
| )) | )) | ||||
| ->setCrumbs($crumbs) | ->setCrumbs($crumbs) | ||||
| ->appendChild( | ->appendChild( | ||||
| array( | array( | ||||
| $object_box, | $view, | ||||
| $content, | |||||
| )); | )); | ||||
| } | } | ||||
| private function buildActionView(DiffusionRequest $drequest) { | private function buildHeader( | ||||
| $viewer = $this->getRequest()->getUser(); | DiffusionRequest $drequest, | ||||
| $links) { | |||||
| $viewer = $this->getViewer(); | |||||
| $view = id(new PhabricatorActionListView()) | $tag = $this->renderCommitHashTag($drequest); | ||||
| ->setUser($viewer); | |||||
| $header = id(new PHUIHeaderView()) | |||||
| ->setHeader($links) | |||||
| ->setUser($viewer) | |||||
| ->setPolicyObject($drequest->getRepository()) | |||||
| ->addTag($tag); | |||||
| return $header; | |||||
| } | |||||
| private function buildChangesetHeader(DiffusionRequest $drequest) { | |||||
| $viewer = $this->getViewer(); | |||||
| $header = id(new PHUIHeaderView()) | |||||
| ->setHeader(pht('Changes')); | |||||
| $history_uri = $drequest->generateURI( | $history_uri = $drequest->generateURI( | ||||
| array( | array( | ||||
| 'action' => 'history', | 'action' => 'history', | ||||
| )); | )); | ||||
| $view->addAction( | $header->addActionLink( | ||||
| id(new PhabricatorActionView()) | id(new PHUIButtonView()) | ||||
| ->setName(pht('View History')) | ->setTag('a') | ||||
| ->setText(pht('View History')) | |||||
| ->setHref($history_uri) | ->setHref($history_uri) | ||||
| ->setIcon('fa-clock-o')); | ->setIcon('fa-clock-o')); | ||||
| $browse_uri = $drequest->generateURI( | $browse_uri = $drequest->generateURI( | ||||
| array( | array( | ||||
| 'action' => 'browse', | 'action' => 'browse', | ||||
| )); | )); | ||||
| $view->addAction( | $header->addActionLink( | ||||
| id(new PhabricatorActionView()) | id(new PHUIButtonView()) | ||||
| ->setName(pht('Browse Content')) | ->setTag('a') | ||||
| ->setText(pht('Browse Content')) | |||||
| ->setHref($browse_uri) | ->setHref($browse_uri) | ||||
| ->setIcon('fa-files-o')); | ->setIcon('fa-files-o')); | ||||
| return $view; | return $header; | ||||
| } | } | ||||
| protected function buildPropertyView( | protected function buildPropertyView( | ||||
| DiffusionRequest $drequest, | DiffusionRequest $drequest, | ||||
| PhabricatorActionListView $actions) { | PhabricatorActionListView $actions) { | ||||
| $viewer = $this->getRequest()->getUser(); | $viewer = $this->getRequest()->getUser(); | ||||
| Show All 23 Lines | |||||