Differential D12209 Diff 29355 src/applications/differential/event/DifferentialHovercardEventListener.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/differential/event/DifferentialHovercardEventListener.php
Show All 32 Lines | $edge_query = id(new PhabricatorEdgeQuery()) | ||||
->withSourcePHIDs(array($phid)) | ->withSourcePHIDs(array($phid)) | ||||
->withEdgeTypes( | ->withEdgeTypes( | ||||
array( | array( | ||||
$e_task, | $e_task, | ||||
)); | )); | ||||
$edge_query->execute(); | $edge_query->execute(); | ||||
$tasks = $edge_query->getDestinationPHIDs(); | $tasks = $edge_query->getDestinationPHIDs(); | ||||
$phids = array_merge( | |||||
array( | |||||
$rev->getAuthorPHID(), | |||||
), | |||||
$reviewer_phids, | |||||
$tasks); | |||||
$handles = id(new PhabricatorHandleQuery()) | |||||
->setViewer($viewer) | |||||
->withPHIDs($phids) | |||||
->execute(); | |||||
$hovercard->setTitle('D'.$rev->getID()); | $hovercard->setTitle('D'.$rev->getID()); | ||||
$hovercard->setDetail($rev->getTitle()); | $hovercard->setDetail($rev->getTitle()); | ||||
$hovercard->addField(pht('Author'), | $hovercard->addField( | ||||
$handles[$rev->getAuthorPHID()]->renderLink()); | pht('Author'), | ||||
$viewer->renderHandle($rev->getAuthorPHID())); | |||||
$hovercard->addField(pht('Reviewers'), | |||||
implode_selected_handle_links(', ', $handles, $reviewer_phids)); | $hovercard->addField( | ||||
pht('Reviewers'), | |||||
$viewer->renderHandleList($reviewer_phids)->setAsInline(true)); | |||||
if ($tasks) { | if ($tasks) { | ||||
$hovercard->addField(pht('%s Task(s)', new PhutilNumber(count($tasks))), | $hovercard->addField( | ||||
implode_selected_handle_links(', ', $handles, $tasks)); | pht('Tasks'), | ||||
$viewer->renderHandleList($tasks)->setAsInline(true)); | |||||
} | } | ||||
if ($rev->getSummary()) { | if ($rev->getSummary()) { | ||||
$hovercard->addField(pht('Summary'), | $hovercard->addField(pht('Summary'), | ||||
id(new PhutilUTF8StringTruncator()) | id(new PhutilUTF8StringTruncator()) | ||||
->setMaximumGlyphs(120) | ->setMaximumGlyphs(120) | ||||
->truncateString($rev->getSummary())); | ->truncateString($rev->getSummary())); | ||||
} | } | ||||
$hovercard->addTag( | $hovercard->addTag( | ||||
DifferentialRevisionDetailView::renderTagForRevision($rev)); | DifferentialRevisionDetailView::renderTagForRevision($rev)); | ||||
$event->setValue('hovercard', $hovercard); | $event->setValue('hovercard', $hovercard); | ||||
} | } | ||||
} | } |