@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

New hovercard UI for Maniphest Tasks

Summary: Swaps out hovercard boring view for super cool workboard card view. Will have more diffs to add additional information down the road.

Test Plan: {F4921092}

Reviewers: epriestley

Reviewed By: epriestley

Subscribers: Korvin

Differential Revision: https://secure.phabricator.com/D17769

+45 -13
+2 -2
resources/celerity/map.php
··· 155 155 'rsrc/css/phui/phui-form.css' => 'a5570f70', 156 156 'rsrc/css/phui/phui-head-thing.css' => 'fd311e5f', 157 157 'rsrc/css/phui/phui-header-view.css' => 'e082678d', 158 - 'rsrc/css/phui/phui-hovercard.css' => 'ae091fc5', 158 + 'rsrc/css/phui/phui-hovercard.css' => 'df27a6c2', 159 159 'rsrc/css/phui/phui-icon-set-selector.css' => '87db8fee', 160 160 'rsrc/css/phui/phui-icon.css' => '12b387a1', 161 161 'rsrc/css/phui/phui-image-mask.css' => 'a8498f9c', ··· 862 862 'phui-head-thing-view-css' => 'fd311e5f', 863 863 'phui-header-view-css' => 'e082678d', 864 864 'phui-hovercard' => '1bd28176', 865 - 'phui-hovercard-view-css' => 'ae091fc5', 865 + 'phui-hovercard-view-css' => 'df27a6c2', 866 866 'phui-icon-set-selector-css' => '87db8fee', 867 867 'phui-icon-view-css' => '12b387a1', 868 868 'phui-image-mask-css' => 'a8498f9c',
+39 -11
src/applications/maniphest/engineextension/ManiphestHovercardEngineExtension.php
··· 24 24 $task, 25 25 $data) { 26 26 $viewer = $this->getViewer(); 27 + require_celerity_resource('phui-workcard-view-css'); 27 28 28 - $hovercard 29 - ->setTitle($task->getMonogram()) 30 - ->setDetail($task->getTitle()); 29 + $id = $task->getID(); 30 + $task = id(new ManiphestTaskQuery()) 31 + ->setViewer($viewer) 32 + ->withIDs(array($id)) 33 + ->needProjectPHIDs(true) 34 + ->executeOne(); 31 35 36 + $phids = array(); 32 37 $owner_phid = $task->getOwnerPHID(); 33 38 if ($owner_phid) { 34 - $owner = $viewer->renderHandle($owner_phid); 35 - } else { 36 - $owner = phutil_tag('em', array(), pht('None')); 39 + $phids[$owner_phid] = $owner_phid; 40 + } 41 + foreach ($task->getProjectPHIDs() as $phid) { 42 + $phids[$phid] = $phid; 37 43 } 38 - $hovercard->addField(pht('Assigned To'), $owner); 39 44 40 - $hovercard->addField( 41 - pht('Priority'), 42 - ManiphestTaskPriority::getTaskPriorityName($task->getPriority())); 45 + $handles = $viewer->loadHandles($phids); 46 + $handles = iterator_to_array($handles); 43 47 44 - $hovercard->addTag(ManiphestView::renderTagForTask($task)); 48 + $card = id(new ProjectBoardTaskCard()) 49 + ->setViewer($viewer) 50 + ->setTask($task) 51 + ->setCanEdit(false); 52 + 53 + $owner_phid = $task->getOwnerPHID(); 54 + if ($owner_phid) { 55 + $owner_handle = $handles[$owner_phid]; 56 + $card->setOwner($owner_handle); 57 + } 58 + 59 + $project_phids = $task->getProjectPHIDs(); 60 + $project_handles = array_select_keys($handles, $project_phids); 61 + if ($project_handles) { 62 + $card->setProjectHandles($project_handles); 63 + } 64 + 65 + $item = $card->getItem(); 66 + $card = id(new PHUIObjectItemListView()) 67 + ->setFlush(true) 68 + ->setItemClass('phui-workcard') 69 + ->addClass('hovercard-task-view') 70 + ->addItem($item); 71 + $hovercard->appendChild($card); 72 + 45 73 } 46 74 47 75 }
+4
webroot/rsrc/css/phui/phui-hovercard.css
··· 105 105 .phui-hovercard-tail a.button { 106 106 margin: 3px; 107 107 } 108 + 109 + .phui-hovercard-wrapper .hovercard-task-view { 110 + box-shadow: 0px 4px 16px rgba(0,0,0,.2); 111 + }