Differential D20881 Diff 49780 src/applications/diffusion/engineextension/DiffusionHovercardEngineExtension.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/diffusion/engineextension/DiffusionHovercardEngineExtension.php
Show All 20 Lines | final class DiffusionHovercardEngineExtension | ||||
public function renderHovercard( | public function renderHovercard( | ||||
PHUIHovercardView $hovercard, | PHUIHovercardView $hovercard, | ||||
PhabricatorObjectHandle $handle, | PhabricatorObjectHandle $handle, | ||||
$commit, | $commit, | ||||
$data) { | $data) { | ||||
$viewer = $this->getViewer(); | $viewer = $this->getViewer(); | ||||
$author_phid = $commit->getAuthorPHID(); | $commit = id(new DiffusionCommitQuery()) | ||||
if ($author_phid) { | ->setViewer($viewer) | ||||
$author = $viewer->renderHandle($author_phid); | ->needIdentities(true) | ||||
} else { | ->needCommitData(true) | ||||
$commit_data = $commit->loadCommitData(); | ->withPHIDs(array($commit->getPHID())) | ||||
$author = phutil_tag('em', array(), $commit_data->getAuthorName()); | ->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->setTitle($handle->getName()); | ||||
$hovercard->setDetail($commit->getSummary()); | $hovercard->setDetail($commit->getSummary()); | ||||
$repository = $handles[$repository_phid]->renderLink(); | |||||
$hovercard->addField(pht('Repository'), $repository); | |||||
$author = $handles[$author_phid]->renderLink(); | |||||
if ($author_phid) { | |||||
$hovercard->addField(pht('Author'), $author); | $hovercard->addField(pht('Author'), $author); | ||||
$hovercard->addField(pht('Date'), | } | ||||
phabricator_date($commit->getEpoch(), $viewer)); | |||||
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()) { | if (!$commit->isAuditStatusNoAudit()) { | ||||
$status = $commit->getAuditStatusObject(); | $status = $commit->getAuditStatusObject(); | ||||
$hovercard->addField( | $hovercard->addField( | ||||
pht('Audit Status'), | pht('Audit Status'), | ||||
$status->getName()); | $status->getName()); | ||||
} | } | ||||
} | } | ||||
} | } |