Remove implode_selected_handle_links()

Summary: Ref T7689. Use the newer, less-janky stuff for rendering handles.

Test Plan:
- Viewed a revision hovercard; viewed "Author", viewed "Reviewers", viewed "Tasks".
- Viewed a task hovercard; viewed "Assigned To"; viewed "Projects"; viewed other edge fields.

Reviewers: btrahan

Reviewed By: btrahan

Subscribers: epriestley

Maniphest Tasks: T7689

Differential Revision: https://secure.phabricator.com/D12209
This commit is contained in:
epriestley
2015-03-30 07:46:17 -07:00
parent e1eafd784e
commit 0f52fc771d
3 changed files with 19 additions and 56 deletions

View File

@@ -38,30 +38,21 @@ final class DifferentialHovercardEventListener
$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'), $hovercard->addField(
implode_selected_handle_links(', ', $handles, $reviewer_phids)); 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()) {

View File

@@ -43,21 +43,16 @@ final class ManiphestHovercardEventListener extends PhabricatorEventListener {
$owner_phid = $task->getOwnerPHID(); $owner_phid = $task->getOwnerPHID();
$phids = array_filter(array_merge( $hovercard
array($owner_phid), ->setTitle(pht('T%d', $task->getID()))
$edge_phids));
$viewer_handles = $this->loadHandles($phids, $viewer);
$hovercard->setTitle(pht('T%d', $task->getID()))
->setDetail($task->getTitle()); ->setDetail($task->getTitle());
$owner = phutil_tag('em', array(), pht('None'));
if ($owner_phid) { if ($owner_phid) {
$owner = $viewer_handles[$owner_phid]->renderLink(); $owner = $viewer->renderHandle($owner_phid);
} else {
$owner = phutil_tag('em', array(), pht('None'));
} }
$hovercard->addField(pht('Assigned To'), $owner);
$hovercard->addField(pht('Assigned to'), $owner);
if ($edge_phids) { if ($edge_phids) {
$edge_types = array( $edge_types = array(
@@ -79,9 +74,10 @@ final class ManiphestHovercardEventListener extends PhabricatorEventListener {
$hovercard->addField( $hovercard->addField(
$edge_name, $edge_name,
implode_selected_handle_links(', ', $viewer_handles, array(
array_keys($edges[$edge_type])) $viewer->renderHandleList(array_keys($edges[$edge_type])),
->appendHTML($edge_overflow)); $edge_overflow,
));
} }
} }
} }
@@ -91,11 +87,4 @@ final class ManiphestHovercardEventListener extends PhabricatorEventListener {
$event->setValue('hovercard', $hovercard); $event->setValue('hovercard', $hovercard);
} }
protected function loadHandles(array $phids, $viewer) {
return id(new PhabricatorHandleQuery())
->setViewer($viewer)
->withPHIDs($phids)
->execute();
}
} }

View File

@@ -1,17 +0,0 @@
<?php
/**
* Implodes selected handles from a pool of handles. Useful if you load handles
* for various phids, but only render a few of them at a time.
*
* @return PhutilSafeHTML
*/
function implode_selected_handle_links($glue, array $handles, array $phids) {
$items = array();
foreach ($phids as $phid) {
$items[] = $handles[$phid]->renderLink();
}
return phutil_implode_html($glue, $items);
}