Page MenuHomestyx hydra

No OneTemporary

diff --git a/src/applications/differential/controller/diffview/DifferentialDiffViewController.php b/src/applications/differential/controller/diffview/DifferentialDiffViewController.php
index 9f13d22d3b..a6b9b5e9b9 100644
--- a/src/applications/differential/controller/diffview/DifferentialDiffViewController.php
+++ b/src/applications/differential/controller/diffview/DifferentialDiffViewController.php
@@ -1,114 +1,128 @@
<?php
/*
* Copyright 2011 Facebook, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
class DifferentialDiffViewController extends DifferentialController {
private $id;
public function willProcessRequest(array $data) {
$this->id = $data['id'];
}
public function processRequest() {
$request = $this->getRequest();
$diff = id(new DifferentialDiff())->load($this->id);
if (!$diff) {
return new Aphront404Response();
}
- $action_panel = new AphrontPanelView();
- $action_panel->setHeader('Preview Diff');
- $action_panel->setWidth(AphrontPanelView::WIDTH_WIDE);
- $action_panel->appendChild(
- '<p class="aphront-panel-instructions">Review the diff for correctness. '.
- 'When you are satisfied, either <strong>create a new revision</strong> '.
- 'or <strong>update an existing revision</strong>.');
-
- // TODO: implmenent optgroup support in AphrontFormSelectControl?
- $select = array();
- $select[] = '<optgroup label="Create New Revision">';
- $select[] = '<option value="">Create a new Revision...</option>';
- $select[] = '</optgroup>';
-
- $revision_data = new DifferentialRevisionListData(
- DifferentialRevisionListData::QUERY_OPEN_OWNED,
- array($request->getUser()->getPHID()));
- $revisions = $revision_data->loadRevisions();
-
- if ($revisions) {
- $select[] = '<optgroup label="Update Existing Revision">';
- foreach ($revisions as $revision) {
- $select[] = phutil_render_tag(
- 'option',
- array(
- 'value' => $revision->getID(),
- ),
- phutil_escape_html($revision->getTitle()));
- }
+ if ($diff->getRevisionID()) {
+ $top_panel = new AphrontPanelView();
+ $top_panel->setWidth(AphrontPanelView::WIDTH_WIDE);
+ $link = phutil_render_tag(
+ 'a',
+ array(
+ 'href' => PhabricatorEnv::getURI('/D'.$diff->getRevisionID()),
+ ),
+ phutil_escape_html('D'.$diff->getRevisionID()));
+ $top_panel->appendChild("<h1>This diff belongs to revision {$link}</h1>");
+ } else {
+ $action_panel = new AphrontPanelView();
+ $action_panel->setHeader('Preview Diff');
+ $action_panel->setWidth(AphrontPanelView::WIDTH_WIDE);
+ $action_panel->appendChild(
+ '<p class="aphront-panel-instructions">Review the diff for '.
+ 'correctness. When you are satisfied, either <strong>create a new '.
+ 'revision</strong> or <strong>update an existing revision</strong>.');
+
+ // TODO: implmenent optgroup support in AphrontFormSelectControl?
+ $select = array();
+ $select[] = '<optgroup label="Create New Revision">';
+ $select[] = '<option value="">Create a new Revision...</option>';
$select[] = '</optgroup>';
- }
- $select =
- '<select name="revisionID">'.
+ $revision_data = new DifferentialRevisionListData(
+ DifferentialRevisionListData::QUERY_OPEN_OWNED,
+ array($request->getUser()->getPHID()));
+ $revisions = $revision_data->loadRevisions();
+
+ if ($revisions) {
+ $select[] = '<optgroup label="Update Existing Revision">';
+ foreach ($revisions as $revision) {
+ $select[] = phutil_render_tag(
+ 'option',
+ array(
+ 'value' => $revision->getID(),
+ ),
+ phutil_escape_html($revision->getTitle()));
+ }
+ $select[] = '</optgroup>';
+ }
+
+ $select =
+ '<select name="revisionID">'.
implode("\n", $select).
- '</select>';
-
- $action_form = new AphrontFormView();
- $action_form
- ->setUser($request->getUser())
- ->setAction('/differential/revision/edit/')
- ->addHiddenInput('diffID', $diff->getID())
- ->addHiddenInput('viaDiffView', 1)
- ->appendChild(
- id(new AphrontFormMarkupControl())
+ '</select>';
+
+ $action_form = new AphrontFormView();
+ $action_form
+ ->setUser($request->getUser())
+ ->setAction('/differential/revision/edit/')
+ ->addHiddenInput('diffID', $diff->getID())
+ ->addHiddenInput('viaDiffView', 1)
+ ->appendChild(
+ id(new AphrontFormMarkupControl())
->setLabel('Attach To')
->setValue($select))
- ->appendChild(
- id(new AphrontFormSubmitControl())
+ ->appendChild(
+ id(new AphrontFormSubmitControl())
->setValue('Continue'));
- $action_panel->appendChild($action_form);
+ $action_panel->appendChild($action_form);
+
+ $top_panel = $action_panel;
+ }
$changesets = $diff->loadChangesets();
$changesets = msort($changesets, 'getSortKey');
$table_of_contents = id(new DifferentialDiffTableOfContentsView())
->setChangesets($changesets);
$details = id(new DifferentialChangesetListView())
->setChangesets($changesets);
return $this->buildStandardPageResponse(
'<div class="differential-primary-pane">'.
implode(
"\n",
array(
- $action_panel->render(),
+ $top_panel->render(),
$table_of_contents->render(),
$details->render(),
)).
'</div>',
array(
'title' => 'Diff View',
));
}
}
diff --git a/src/applications/differential/controller/diffview/__init__.php b/src/applications/differential/controller/diffview/__init__.php
index e3ab86a4c9..ab06276b86 100644
--- a/src/applications/differential/controller/diffview/__init__.php
+++ b/src/applications/differential/controller/diffview/__init__.php
@@ -1,24 +1,25 @@
<?php
/**
* This file is automatically generated. Lint this module to rebuild it.
* @generated
*/
phutil_require_module('phabricator', 'aphront/response/404');
phutil_require_module('phabricator', 'applications/differential/controller/base');
phutil_require_module('phabricator', 'applications/differential/data/revisionlist');
phutil_require_module('phabricator', 'applications/differential/storage/diff');
phutil_require_module('phabricator', 'applications/differential/view/changesetlistview');
phutil_require_module('phabricator', 'applications/differential/view/difftableofcontents');
+phutil_require_module('phabricator', 'infrastructure/env');
phutil_require_module('phabricator', 'view/form/base');
phutil_require_module('phabricator', 'view/form/control/markup');
phutil_require_module('phabricator', 'view/form/control/submit');
phutil_require_module('phabricator', 'view/layout/panel');
phutil_require_module('phutil', 'markup');
phutil_require_module('phutil', 'utils');
phutil_require_source('DifferentialDiffViewController.php');

File Metadata

Mime Type
text/x-diff
Expires
Fri, Oct 31, 11:03 AM (22 h, 38 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
312121
Default Alt Text
(7 KB)

Event Timeline