@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.

Add project tags to workboard cards

Summary: Ref T4863. Add project tags to workboard cards.

Test Plan: {F1053509}

Reviewers: joshuaspence, #blessed_reviewers, epriestley

Reviewed By: #blessed_reviewers, epriestley

Subscribers: Luke081515.2, Korvin

Maniphest Tasks: T4863

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

+36 -3
+2
src/applications/maniphest/editor/ManiphestEditEngine.php
··· 294 294 $column_tasks = id(new ManiphestTaskQuery()) 295 295 ->setViewer($viewer) 296 296 ->withPHIDs($task_phids) 297 + ->needProjectPHIDs(true) 297 298 ->execute(); 298 299 299 300 if ($order == PhabricatorProjectColumn::ORDER_NATURAL) { ··· 333 334 ->setViewer($viewer) 334 335 ->setTask($task) 335 336 ->setOwner($owner) 337 + ->setProject($column->getProject()) 336 338 ->setCanEdit(true) 337 339 ->getItem(); 338 340
+1 -1
src/applications/phid/view/PHUIHandleTagListView.php
··· 9 9 private $slim; 10 10 private $showHovercards; 11 11 12 - public function setHandles(array $handles) { 12 + public function setHandles($handles) { 13 13 $this->handles = $handles; 14 14 return $this; 15 15 }
+1
src/applications/project/controller/PhabricatorProjectBoardViewController.php
··· 304 304 $can_edit = idx($task_can_edit_map, $task->getPHID(), false); 305 305 $cards->addItem(id(new ProjectBoardTaskCard()) 306 306 ->setViewer($viewer) 307 + ->setProject($project) 307 308 ->setTask($task) 308 309 ->setOwner($owner) 309 310 ->setCanEdit($can_edit)
+5 -1
src/applications/project/controller/PhabricatorProjectMoveController.php
··· 26 26 return new Aphront404Response(); 27 27 } 28 28 29 - $object = id(new PhabricatorObjectQuery()) 29 + $object = id(new ManiphestTaskQuery()) 30 30 ->setViewer($viewer) 31 31 ->withPHIDs(array($object_phid)) 32 + ->needProjectPHIDs(true) 32 33 ->requireCapabilities( 33 34 array( 34 35 PhabricatorPolicyCapability::CAN_VIEW, ··· 95 96 $tasks = id(new ManiphestTaskQuery()) 96 97 ->setViewer($viewer) 97 98 ->withPHIDs($task_phids) 99 + ->needProjectPHIDs(true) 98 100 ->requireCapabilities( 99 101 array( 100 102 PhabricatorPolicyCapability::CAN_VIEW, ··· 149 151 ->withPHIDs(array($object->getOwnerPHID())) 150 152 ->executeOne(); 151 153 } 154 + 152 155 $card = id(new ProjectBoardTaskCard()) 153 156 ->setViewer($viewer) 154 157 ->setTask($object) 155 158 ->setOwner($owner) 156 159 ->setCanEdit(true) 160 + ->setProject($project) 157 161 ->getItem(); 158 162 159 163 return id(new AphrontAjaxResponse())->setContent(
+23 -1
src/applications/project/view/ProjectBoardTaskCard.php
··· 3 3 final class ProjectBoardTaskCard extends Phobject { 4 4 5 5 private $viewer; 6 + private $project; 6 7 private $task; 7 8 private $owner; 8 9 private $canEdit; ··· 13 14 } 14 15 public function getViewer() { 15 16 return $this->viewer; 17 + } 18 + 19 + public function setProject(PhabricatorProject $project) { 20 + $this->project = $project; 21 + return $this; 22 + } 23 + public function getProject() { 24 + return $this->project; 16 25 } 17 26 18 27 public function setTask(ManiphestTask $task) { ··· 44 53 $task = $this->getTask(); 45 54 $owner = $this->getOwner(); 46 55 $can_edit = $this->getCanEdit(); 56 + $viewer = $this->getViewer(); 47 57 48 58 $color_map = ManiphestTaskPriority::getColorMap(); 49 59 $bar_color = idx($color_map, $task->getPriority(), 'grey'); 50 60 51 61 $card = id(new PHUIObjectItemView()) 52 62 ->setObject($task) 53 - ->setUser($this->getViewer()) 63 + ->setUser($viewer) 54 64 ->setObjectName('T'.$task->getID()) 55 65 ->setHeader($task->getTitle()) 56 66 ->setGrippable($can_edit) ··· 71 81 72 82 if ($owner) { 73 83 $card->addAttribute($owner->renderLink()); 84 + } 85 + 86 + $project_phids = array_fuse($task->getProjectPHIDs()); 87 + unset($project_phids[$this->project->getPHID()]); 88 + 89 + $handle_list = $viewer->loadHandles($project_phids); 90 + $tag_list = id(new PHUIHandleTagListView()) 91 + ->setSlim(true) 92 + ->setHandles($handle_list); 93 + 94 + if (!$tag_list->isEmpty()) { 95 + $card->addAttribute($tag_list); 74 96 } 75 97 76 98 return $card;
+4
src/view/AphrontTagView.php
··· 77 77 return $this->id; 78 78 } 79 79 80 + public function isEmpty() { 81 + return empty($this->getTagContent()); 82 + } 83 + 80 84 protected function getTagName() { 81 85 return 'div'; 82 86 }