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:
@@ -32,13 +32,24 @@ class DifferentialDiffViewController extends DifferentialController {
|
|||||||
return new Aphront404Response();
|
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 = new AphrontPanelView();
|
||||||
$action_panel->setHeader('Preview Diff');
|
$action_panel->setHeader('Preview Diff');
|
||||||
$action_panel->setWidth(AphrontPanelView::WIDTH_WIDE);
|
$action_panel->setWidth(AphrontPanelView::WIDTH_WIDE);
|
||||||
$action_panel->appendChild(
|
$action_panel->appendChild(
|
||||||
'<p class="aphront-panel-instructions">Review the diff for correctness. '.
|
'<p class="aphront-panel-instructions">Review the diff for '.
|
||||||
'When you are satisfied, either <strong>create a new revision</strong> '.
|
'correctness. When you are satisfied, either <strong>create a new '.
|
||||||
'or <strong>update an existing revision</strong>.');
|
'revision</strong> or <strong>update an existing revision</strong>.');
|
||||||
|
|
||||||
// TODO: implmenent optgroup support in AphrontFormSelectControl?
|
// TODO: implmenent optgroup support in AphrontFormSelectControl?
|
||||||
$select = array();
|
$select = array();
|
||||||
@@ -85,6 +96,9 @@ class DifferentialDiffViewController extends DifferentialController {
|
|||||||
|
|
||||||
$action_panel->appendChild($action_form);
|
$action_panel->appendChild($action_form);
|
||||||
|
|
||||||
|
$top_panel = $action_panel;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$changesets = $diff->loadChangesets();
|
$changesets = $diff->loadChangesets();
|
||||||
@@ -101,7 +115,7 @@ class DifferentialDiffViewController extends DifferentialController {
|
|||||||
implode(
|
implode(
|
||||||
"\n",
|
"\n",
|
||||||
array(
|
array(
|
||||||
$action_panel->render(),
|
$top_panel->render(),
|
||||||
$table_of_contents->render(),
|
$table_of_contents->render(),
|
||||||
$details->render(),
|
$details->render(),
|
||||||
)).
|
)).
|
||||||
|
|||||||
@@ -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/storage/diff');
|
||||||
phutil_require_module('phabricator', 'applications/differential/view/changesetlistview');
|
phutil_require_module('phabricator', 'applications/differential/view/changesetlistview');
|
||||||
phutil_require_module('phabricator', 'applications/differential/view/difftableofcontents');
|
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/base');
|
||||||
phutil_require_module('phabricator', 'view/form/control/markup');
|
phutil_require_module('phabricator', 'view/form/control/markup');
|
||||||
phutil_require_module('phabricator', 'view/form/control/submit');
|
phutil_require_module('phabricator', 'view/form/control/submit');
|
||||||
|
|||||||
Reference in New Issue
Block a user