mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-26 15:30:58 +01:00
Link revision from blame
Summary: I need this much more than commit but it can be useful too. Test Plan: Displayed blame, clicked on the link. Reviewers: epriestley Reviewed By: epriestley CC: john, aran, Korvin, phunt Differential Revision: https://secure.phabricator.com/D2820
This commit is contained in:
parent
d6ec905fe3
commit
a7a978d1f3
1 changed files with 50 additions and 0 deletions
|
@ -388,6 +388,22 @@ final class DiffusionBrowseFileController extends DiffusionController {
|
|||
$commits = mpull($commits, null, 'getCommitIdentifier');
|
||||
}
|
||||
|
||||
$revision_ids = array();
|
||||
$revisions = array();
|
||||
if ($commits) {
|
||||
$revision_ids = queryfx_all(
|
||||
id(new DifferentialRevision())->establishConnection('r'),
|
||||
'SELECT * FROM %T WHERE commitPHID IN (%Ls)',
|
||||
DifferentialRevision::TABLE_COMMIT,
|
||||
mpull($commits, 'getPHID'));
|
||||
if ($revision_ids) {
|
||||
$revision_ids = ipull($revision_ids, 'revisionID', 'commitPHID');
|
||||
$revisions = id(new DifferentialRevision())->loadAllWhere(
|
||||
'id IN (%Ld)',
|
||||
$revision_ids);
|
||||
}
|
||||
}
|
||||
|
||||
$request = $this->getRequest();
|
||||
$user = $request->getUser();
|
||||
|
||||
|
@ -411,6 +427,7 @@ final class DiffusionBrowseFileController extends DiffusionController {
|
|||
|
||||
$before_link = null;
|
||||
$commit_link = null;
|
||||
$revision_link = null;
|
||||
if (idx($line, 'commit')) {
|
||||
$commit = $line['commit'];
|
||||
|
||||
|
@ -443,6 +460,31 @@ final class DiffusionBrowseFileController extends DiffusionController {
|
|||
),
|
||||
phutil_escape_html(phutil_utf8_shorten($line['commit'], 9, '')));
|
||||
|
||||
$revision_id = idx($revision_ids, $commits[$commit]->getPHID());
|
||||
if ($revision_id) {
|
||||
$revision = idx($revisions, $revision_id);
|
||||
if (!$revision) {
|
||||
$tooltip = '(Invalid revision)';
|
||||
} else {
|
||||
$tooltip =
|
||||
phabricator_date($revision->getDateModified(), $user).
|
||||
" \xC2\xB7 ".
|
||||
$revision->getTitle();
|
||||
}
|
||||
$revision_link = javelin_render_tag(
|
||||
'a',
|
||||
array(
|
||||
'href' => '/D'.$revision_id,
|
||||
'sigil' => 'has-tooltip',
|
||||
'meta' => array(
|
||||
'tip' => $tooltip,
|
||||
'align' => 'E',
|
||||
'size' => 600,
|
||||
),
|
||||
),
|
||||
'D'.$revision_id);
|
||||
}
|
||||
|
||||
$before_link = javelin_render_tag(
|
||||
'a',
|
||||
array(
|
||||
|
@ -473,6 +515,14 @@ final class DiffusionBrowseFileController extends DiffusionController {
|
|||
),
|
||||
$commit_link);
|
||||
|
||||
$blame[] = phutil_render_tag(
|
||||
'th',
|
||||
array(
|
||||
'class' => 'diffusion-rev-link',
|
||||
'style' => 'background: '.$color,
|
||||
),
|
||||
$revision_link);
|
||||
|
||||
$blame[] = phutil_render_tag(
|
||||
'th',
|
||||
array(
|
||||
|
|
Loading…
Reference in a new issue