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[] = ''; - $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[] = ''; $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');