Page MenuHomestyx hydra

No OneTemporary

diff --git a/src/applications/diffusion/engineextension/DiffusionHovercardEngineExtension.php b/src/applications/diffusion/engineextension/DiffusionHovercardEngineExtension.php
index 3ce95cb3c3..cd0b3cceab 100644
--- a/src/applications/diffusion/engineextension/DiffusionHovercardEngineExtension.php
+++ b/src/applications/diffusion/engineextension/DiffusionHovercardEngineExtension.php
@@ -1,53 +1,78 @@
<?php
final class DiffusionHovercardEngineExtension
extends PhabricatorHovercardEngineExtension {
const EXTENSIONKEY = 'diffusion';
public function isExtensionEnabled() {
return PhabricatorApplication::isClassInstalled(
'PhabricatorDiffusionApplication');
}
public function getExtensionName() {
return pht('Diffusion Commits');
}
public function canRenderObjectHovercard($object) {
return ($object instanceof PhabricatorRepositoryCommit);
}
public function renderHovercard(
PHUIHovercardView $hovercard,
PhabricatorObjectHandle $handle,
$commit,
$data) {
$viewer = $this->getViewer();
- $author_phid = $commit->getAuthorPHID();
- if ($author_phid) {
- $author = $viewer->renderHandle($author_phid);
- } else {
- $commit_data = $commit->loadCommitData();
- $author = phutil_tag('em', array(), $commit_data->getAuthorName());
+ $commit = id(new DiffusionCommitQuery())
+ ->setViewer($viewer)
+ ->needIdentities(true)
+ ->needCommitData(true)
+ ->withPHIDs(array($commit->getPHID()))
+ ->executeOne();
+ if (!$commit) {
+ return;
}
+ $author_phid = $commit->getAuthorDisplayPHID();
+ $committer_phid = $commit->getCommitterDisplayPHID();
+ $repository_phid = $commit->getRepository()->getPHID();
+
+ $phids = array();
+ $phids[] = $author_phid;
+ $phids[] = $committer_phid;
+ $phids[] = $repository_phid;
+
+ $handles = $viewer->loadHandles($phids);
+
$hovercard->setTitle($handle->getName());
$hovercard->setDetail($commit->getSummary());
- $hovercard->addField(pht('Author'), $author);
- $hovercard->addField(pht('Date'),
- phabricator_date($commit->getEpoch(), $viewer));
+ $repository = $handles[$repository_phid]->renderLink();
+ $hovercard->addField(pht('Repository'), $repository);
+
+ $author = $handles[$author_phid]->renderLink();
+ if ($author_phid) {
+ $hovercard->addField(pht('Author'), $author);
+ }
+
+ if ($committer_phid && ($committer_phid !== $author_phid)) {
+ $committer = $handles[$committer_phid]->renderLink();
+ $hovercard->addField(pht('Committer'), $committer);
+ }
+
+ $date = phabricator_date($commit->getEpoch(), $viewer);
+ $hovercard->addField(pht('Date'), $date);
if (!$commit->isAuditStatusNoAudit()) {
$status = $commit->getAuditStatusObject();
$hovercard->addField(
pht('Audit Status'),
$status->getName());
}
}
}

File Metadata

Mime Type
text/x-diff
Expires
Mon, Apr 28, 2:56 AM (8 h, 46 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
107691
Default Alt Text
(2 KB)

Event Timeline