Path: blob/master/src/applications/maniphest/engineextension/ManiphestHovercardEngineExtension.php
12256 views
<?php12final class ManiphestHovercardEngineExtension3extends PhabricatorHovercardEngineExtension {45const EXTENSIONKEY = 'maniphest';67public function isExtensionEnabled() {8return PhabricatorApplication::isClassInstalled(9'PhabricatorManiphestApplication');10}1112public function getExtensionName() {13return pht('Maniphest Tasks');14}1516public function canRenderObjectHovercard($object) {17return ($object instanceof ManiphestTask);18}1920public function renderHovercard(21PHUIHovercardView $hovercard,22PhabricatorObjectHandle $handle,23$task,24$data) {25$viewer = $this->getViewer();26require_celerity_resource('phui-workcard-view-css');2728$id = $task->getID();29$task = id(new ManiphestTaskQuery())30->setViewer($viewer)31->withIDs(array($id))32->needProjectPHIDs(true)33->executeOne();3435$phids = array();36$owner_phid = $task->getOwnerPHID();37if ($owner_phid) {38$phids[$owner_phid] = $owner_phid;39}40foreach ($task->getProjectPHIDs() as $phid) {41$phids[$phid] = $phid;42}4344$handles = $viewer->loadHandles($phids);45$handles = iterator_to_array($handles);4647$card = id(new ProjectBoardTaskCard())48->setViewer($viewer)49->setTask($task);5051$owner_phid = $task->getOwnerPHID();52if ($owner_phid) {53$owner_handle = $handles[$owner_phid];54$card->setOwner($owner_handle);55}5657$project_phids = $task->getProjectPHIDs();58$project_handles = array_select_keys($handles, $project_phids);59if ($project_handles) {60$card->setProjectHandles($project_handles);61}6263$item = $card->getItem();64$card = id(new PHUIObjectItemListView())65->setFlush(true)66->setItemClass('phui-workcard')67->addClass('hovercard-task-view')68->addItem($item);69$hovercard->appendChild($card);7071}7273}747576