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
@@ -32,58 +32,72 @@ class DifferentialDiffViewController extends DifferentialController {
return new Aphront404Response();
}
- $action_panel = new AphrontPanelView();
- $action_panel->setHeader('Preview Diff');
- $action_panel->setWidth(AphrontPanelView::WIDTH_WIDE);
- $action_panel->appendChild(
- '
Review the diff for correctness. '.
- 'When you are satisfied, either create a new revision '.
- 'or update an existing revision .');
+ 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("
This diff belongs to revision {$link} ");
+ } else {
+ $action_panel = new AphrontPanelView();
+ $action_panel->setHeader('Preview Diff');
+ $action_panel->setWidth(AphrontPanelView::WIDTH_WIDE);
+ $action_panel->appendChild(
+ 'Review the diff for '.
+ 'correctness. When you are satisfied, either create a new '.
+ 'revision or update an existing revision .');
- // TODO: implmenent optgroup support in AphrontFormSelectControl?
- $select = array();
- $select[] = '';
- $select[] = 'Create a new Revision... ';
- $select[] = ' ';
-
- $revision_data = new DifferentialRevisionListData(
- DifferentialRevisionListData::QUERY_OPEN_OWNED,
- array($request->getUser()->getPHID()));
- $revisions = $revision_data->loadRevisions();
-
- if ($revisions) {
- $select[] = '';
- foreach ($revisions as $revision) {
- $select[] = phutil_render_tag(
- 'option',
- array(
- 'value' => $revision->getID(),
- ),
- phutil_escape_html($revision->getTitle()));
- }
+ // TODO: implmenent optgroup support in AphrontFormSelectControl?
+ $select = array();
+ $select[] = '';
+ $select[] = 'Create a new Revision... ';
$select[] = ' ';
- }
- $select =
- ''.
+ $revision_data = new DifferentialRevisionListData(
+ DifferentialRevisionListData::QUERY_OPEN_OWNED,
+ array($request->getUser()->getPHID()));
+ $revisions = $revision_data->loadRevisions();
+
+ if ($revisions) {
+ $select[] = '';
+ foreach ($revisions as $revision) {
+ $select[] = phutil_render_tag(
+ 'option',
+ array(
+ 'value' => $revision->getID(),
+ ),
+ phutil_escape_html($revision->getTitle()));
+ }
+ $select[] = ' ';
+ }
+
+ $select =
+ ''.
implode("\n", $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())
+ $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;
+ }
@@ -101,7 +115,7 @@ class DifferentialDiffViewController extends DifferentialController {
implode(
"\n",
array(
- $action_panel->render(),
+ $top_panel->render(),
$table_of_contents->render(),
$details->render(),
)).
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
@@ -12,6 +12,7 @@ phutil_require_module('phabricator', 'applications/differential/data/revisionlis
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');