public function renderHovercard(PHUIHovercardView $hovercard, PhabricatorObjectHandle $handle, $task, $data)
 {
     $viewer = $this->getViewer();
     $hovercard->setTitle($task->getMonogram())->setDetail($task->getTitle());
     $owner_phid = $task->getOwnerPHID();
     if ($owner_phid) {
         $owner = $viewer->renderHandle($owner_phid);
     } else {
         $owner = phutil_tag('em', array(), pht('None'));
     }
     $hovercard->addField(pht('Assigned To'), $owner);
     $hovercard->addField(pht('Priority'), ManiphestTaskPriority::getTaskPriorityName($task->getPriority()));
     $hovercard->addTag(ManiphestView::renderTagForTask($task));
 }
 public function renderHovercard(PHUIHovercardView $hovercard, PhabricatorObjectHandle $handle, $object, $data)
 {
     $viewer = $this->getViewer();
     $revision = idx($data['revisions'], $object->getPHID());
     if (!$revision) {
         return;
     }
     $hovercard->setTitle('D' . $revision->getID());
     $hovercard->setDetail($revision->getTitle());
     $hovercard->addField(pht('Author'), $viewer->renderHandle($revision->getAuthorPHID()));
     $reviewer_phids = $revision->getReviewerStatus();
     $reviewer_phids = mpull($reviewer_phids, 'getReviewerPHID');
     $hovercard->addField(pht('Reviewers'), $viewer->renderHandleList($reviewer_phids)->setAsInline(true));
     $summary = $revision->getSummary();
     if (strlen($summary)) {
         $summary = id(new PhutilUTF8StringTruncator())->setMaximumGlyphs(120)->truncateString($summary);
         $hovercard->addField(pht('Summary'), $summary);
     }
     $tag = DifferentialRevisionDetailView::renderTagForRevision($revision);
     $hovercard->addTag($tag);
 }