3 final class ManiphestHovercardEngineExtension
4 extends PhabricatorHovercardEngineExtension
{
6 const EXTENSIONKEY
= 'maniphest';
8 public function isExtensionEnabled() {
9 return PhabricatorApplication
::isClassInstalled(
10 'PhabricatorManiphestApplication');
13 public function getExtensionName() {
14 return pht('Maniphest Tasks');
17 public function canRenderObjectHovercard($object) {
18 return ($object instanceof ManiphestTask
);
21 public function renderHovercard(
22 PHUIHovercardView
$hovercard,
23 PhabricatorObjectHandle
$handle,
26 $viewer = $this->getViewer();
27 require_celerity_resource('phui-workcard-view-css');
30 $task = id(new ManiphestTaskQuery())
33 ->needProjectPHIDs(true)
37 $owner_phid = $task->getOwnerPHID();
39 $phids[$owner_phid] = $owner_phid;
41 foreach ($task->getProjectPHIDs() as $phid) {
42 $phids[$phid] = $phid;
45 $handles = $viewer->loadHandles($phids);
46 $handles = iterator_to_array($handles);
48 $card = id(new ProjectBoardTaskCard())
52 $owner_phid = $task->getOwnerPHID();
54 $owner_handle = $handles[$owner_phid];
55 $card->setOwner($owner_handle);
58 $project_phids = $task->getProjectPHIDs();
59 $project_handles = array_select_keys($handles, $project_phids);
60 if ($project_handles) {
61 $card->setProjectHandles($project_handles);
64 $item = $card->getItem();
65 $card = id(new PHUIObjectItemListView())
67 ->setItemClass('phui-workcard')
68 ->addClass('hovercard-task-view')
70 $hovercard->appendChild($card);