Added a link from a diff view to diff's revision if there is one.

Summary:
The diff view page should point to the revision, if the diff has
already been attached to one. The form to select the revision was also
removed in this case.

Let's me know if it should be possible to reattach a diff to a different
revision.

Test Plan:
Tested that a new diff created with '--preview' option was not attached to
any revision. After attaching the diff manually, made sure that the diff view
page
showed the link to the revision correctly.

Reviewed By: epriestley
Reviewers: jungejason, epriestley
CC: aran, epriestley
Differential Revision: 216
This commit is contained in:
tuomaspelkonen
2011-05-02 17:44:47 -07:00
parent fc2a2a8d09
commit 8c031db32b
2 changed files with 59 additions and 44 deletions

View File

@@ -32,13 +32,24 @@ class DifferentialDiffViewController extends DifferentialController {
return new Aphront404Response();
}
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>.');
'<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();
@@ -85,6 +96,9 @@ class DifferentialDiffViewController extends DifferentialController {
$action_panel->appendChild($action_form);
$top_panel = $action_panel;
}
$changesets = $diff->loadChangesets();
@@ -101,7 +115,7 @@ class DifferentialDiffViewController extends DifferentialController {
implode(
"\n",
array(
$action_panel->render(),
$top_panel->render(),
$table_of_contents->render(),
$details->render(),
)).

View File

@@ -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');