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

Don't show any subproject tags on workboard cards

Summary: Ref T10010. This gets rid of, e.g., the "Iteration I" tag in the column for that milestone, as it is redundant with the column itself.

Test Plan: {F1090427}

Reviewers: chad

Reviewed By: chad

Maniphest Tasks: T10010

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

+54 -14
+8 -1
src/applications/maniphest/editor/ManiphestEditEngine.php
··· 344 344 ->executeOne(); 345 345 } 346 346 347 + $handle_phids = $task->getProjectPHIDs(); 348 + $handle_phids = array_fuse($handle_phids); 349 + $handle_phids = array_diff_key($handle_phids, $board_phids); 350 + 351 + $project_handles = $viewer->loadHandles($handle_phids); 352 + $project_handles = iterator_to_array($project_handles); 353 + 347 354 $tasks = id(new ProjectBoardTaskCard()) 348 355 ->setViewer($viewer) 349 356 ->setTask($task) 350 357 ->setOwner($owner) 351 - ->setProject($column->getProject()) 358 + ->setProjectHandles($project_handles) 352 359 ->setCanEdit(true) 353 360 ->getItem(); 354 361
+18 -1
src/applications/project/controller/PhabricatorProjectBoardViewController.php
··· 228 228 229 229 $this->handles = ManiphestTaskListView::loadTaskHandles($viewer, $tasks); 230 230 231 + $all_project_phids = array(); 232 + foreach ($tasks as $task) { 233 + foreach ($task->getProjectPHIDs() as $project_phid) { 234 + $all_project_phids[$project_phid] = $project_phid; 235 + } 236 + } 237 + 238 + foreach ($select_phids as $phid) { 239 + unset($all_project_phids[$phid]); 240 + } 241 + 242 + $all_handles = $viewer->loadHandles($all_project_phids); 243 + $all_handles = iterator_to_array($all_handles); 244 + 231 245 foreach ($columns as $column) { 232 246 if (!$this->showHidden) { 233 247 if ($column->isHidden()) { ··· 308 322 $owner = $this->handles[$task->getOwnerPHID()]; 309 323 } 310 324 $can_edit = idx($task_can_edit_map, $task->getPHID(), false); 325 + 326 + $handles = array_select_keys($all_handles, $task->getProjectPHIDs()); 327 + 311 328 $cards->addItem(id(new ProjectBoardTaskCard()) 312 329 ->setViewer($viewer) 313 - ->setProject($project) 330 + ->setProjectHandles($handles) 314 331 ->setTask($task) 315 332 ->setOwner($owner) 316 333 ->setCanEdit($can_edit)
+19 -1
src/applications/project/controller/PhabricatorProjectMoveController.php
··· 195 195 )) 196 196 ->executeOne(); 197 197 198 + $except_phids = array($board_phid); 199 + if ($project->getHasSubprojects() || $project->getHasMilestones()) { 200 + $descendants = id(new PhabricatorProjectQuery()) 201 + ->setViewer($viewer) 202 + ->withAncestorProjectPHIDs($except_phids) 203 + ->execute(); 204 + foreach ($descendants as $descendant) { 205 + $except_phids[] = $descendant->getPHID(); 206 + } 207 + } 208 + 209 + $except_phids = array_fuse($except_phids); 210 + $handle_phids = array_fuse($object->getProjectPHIDs()); 211 + $handle_phids = array_diff_key($handle_phids, $except_phids); 212 + 213 + $project_handles = $viewer->loadHandles($handle_phids); 214 + $project_handles = iterator_to_array($project_handles); 215 + 198 216 $card = id(new ProjectBoardTaskCard()) 199 217 ->setViewer($viewer) 200 218 ->setTask($object) 201 219 ->setOwner($owner) 202 220 ->setCanEdit(true) 203 - ->setProject($project) 221 + ->setProjectHandles($project_handles) 204 222 ->getItem(); 205 223 206 224 $card->addClass('phui-workcard');
+9 -11
src/applications/project/view/ProjectBoardTaskCard.php
··· 3 3 final class ProjectBoardTaskCard extends Phobject { 4 4 5 5 private $viewer; 6 - private $project; 6 + private $projectHandles; 7 7 private $task; 8 8 private $owner; 9 9 private $canEdit; ··· 16 16 return $this->viewer; 17 17 } 18 18 19 - public function setProject(PhabricatorProject $project) { 20 - $this->project = $project; 19 + public function setProjectHandles(array $handles) { 20 + $this->projectHandles = $handles; 21 21 return $this; 22 22 } 23 - public function getProject() { 24 - return $this->project; 23 + 24 + public function getProjectHandles() { 25 + return $this->projectHandles; 25 26 } 26 27 27 28 public function setTask(ManiphestTask $task) { ··· 83 84 $card->addHandleIcon($owner, $owner->getName()); 84 85 } 85 86 86 - $project_phids = array_fuse($task->getProjectPHIDs()); 87 - unset($project_phids[$this->project->getPHID()]); 88 - 89 - if ($project_phids) { 90 - $handle_list = $viewer->loadHandles($project_phids); 87 + $project_handles = $this->getProjectHandles(); 88 + if ($project_handles) { 91 89 $tag_list = id(new PHUIHandleTagListView()) 92 90 ->setSlim(true) 93 - ->setHandles($handle_list); 91 + ->setHandles($project_handles); 94 92 $card->addAttribute($tag_list); 95 93 } 96 94