Provide link to inlines in-context in $ghost['href']

Summary: See D12702.

Test Plan: Made something a link and clicked it, seemed to work OK.

Reviewers: chad

Reviewed By: chad

Subscribers: yelirekim, epriestley

Differential Revision: https://secure.phabricator.com/D12703
This commit is contained in:
epriestley
2015-05-04 11:52:21 -07:00
parent c02db2d15c
commit 460d68ba27
4 changed files with 20 additions and 4 deletions

View File

@@ -193,7 +193,11 @@ final class DifferentialChangesetViewController extends DifferentialController {
->setViewer($viewer) ->setViewer($viewer)
->withRevisionPHIDs(array($revision->getPHID())); ->withRevisionPHIDs(array($revision->getPHID()));
$inlines = $query->execute(); $inlines = $query->execute();
$inlines = $query->adjustInlinesForChangesets($inlines, $old, $new); $inlines = $query->adjustInlinesForChangesets(
$inlines,
$old,
$new,
$revision);
} else { } else {
$inlines = array(); $inlines = array();
} }

View File

@@ -178,7 +178,11 @@ final class DifferentialRevisionViewController extends DifferentialController {
->setViewer($user) ->setViewer($user)
->withRevisionPHIDs(array($revision->getPHID())); ->withRevisionPHIDs(array($revision->getPHID()));
$inlines = $query->execute(); $inlines = $query->execute();
$inlines = $query->adjustInlinesForChangesets($inlines, $old, $new); $inlines = $query->adjustInlinesForChangesets(
$inlines,
$old,
$new,
$revision);
$visible_changesets = array(); $visible_changesets = array();
foreach ($inlines as $inline) { foreach ($inlines as $inline) {

View File

@@ -140,7 +140,8 @@ final class DifferentialInlineCommentQuery
public function adjustInlinesForChangesets( public function adjustInlinesForChangesets(
array $inlines, array $inlines,
array $old, array $old,
array $new) { array $new,
DifferentialRevision $revision) {
assert_instances_of($inlines, 'DifferentialInlineComment'); assert_instances_of($inlines, 'DifferentialInlineComment');
assert_instances_of($old, 'DifferentialChangeset'); assert_instances_of($old, 'DifferentialChangeset');
@@ -302,6 +303,11 @@ final class DifferentialInlineCommentQuery
// If we found a changeset to port this comment to, bring it forward // If we found a changeset to port this comment to, bring it forward
// or backward and mark it. // or backward and mark it.
if ($target_id) { if ($target_id) {
$diff_id = $changeset->getDiffID();
$inline_id = $inline->getID();
$revision_id = $revision->getID();
$href = "/D{$revision_id}?id={$diff_id}#inline-{$inline_id}";
$inline $inline
->makeEphemeral(true) ->makeEphemeral(true)
->setChangesetID($target_id) ->setChangesetID($target_id)
@@ -309,6 +315,7 @@ final class DifferentialInlineCommentQuery
array( array(
'new' => $is_new, 'new' => $is_new,
'reason' => $reason, 'reason' => $reason,
'href' => $href,
)); ));
$results[] = $inline; $results[] = $inline;

View File

@@ -531,7 +531,8 @@ final class DifferentialRevision extends DifferentialDAO
$query->adjustInlinesForChangesets( $query->adjustInlinesForChangesets(
$inlines, $inlines,
array_select_keys($changesets, $old_ids), array_select_keys($changesets, $old_ids),
array_select_keys($changesets, $new_ids)); array_select_keys($changesets, $new_ids),
$this);
return $timeline return $timeline
->setChangesets($changesets) ->setChangesets($changesets)