Skip to content

Commit 080d838

Browse files
committed
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
1 parent fcf03c2 commit 080d838

File tree

6 files changed

+36
-3
lines changed

6 files changed

+36
-3
lines changed

src/applications/maniphest/editor/ManiphestEditEngine.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -294,6 +294,7 @@ private function buildCardResponse(ManiphestTask $task) {
294294
$column_tasks = id(new ManiphestTaskQuery())
295295
->setViewer($viewer)
296296
->withPHIDs($task_phids)
297+
->needProjectPHIDs(true)
297298
->execute();
298299

299300
if ($order == PhabricatorProjectColumn::ORDER_NATURAL) {
@@ -333,6 +334,7 @@ private function buildCardResponse(ManiphestTask $task) {
333334
->setViewer($viewer)
334335
->setTask($task)
335336
->setOwner($owner)
337+
->setProject($column->getProject())
336338
->setCanEdit(true)
337339
->getItem();
338340

src/applications/phid/view/PHUIHandleTagListView.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ final class PHUIHandleTagListView extends AphrontTagView {
99
private $slim;
1010
private $showHovercards;
1111

12-
public function setHandles(array $handles) {
12+
public function setHandles($handles) {
1313
$this->handles = $handles;
1414
return $this;
1515
}

src/applications/project/controller/PhabricatorProjectBoardViewController.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -304,6 +304,7 @@ public function handleRequest(AphrontRequest $request) {
304304
$can_edit = idx($task_can_edit_map, $task->getPHID(), false);
305305
$cards->addItem(id(new ProjectBoardTaskCard())
306306
->setViewer($viewer)
307+
->setProject($project)
307308
->setTask($task)
308309
->setOwner($owner)
309310
->setCanEdit($can_edit)

src/applications/project/controller/PhabricatorProjectMoveController.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,10 @@ public function handleRequest(AphrontRequest $request) {
2626
return new Aphront404Response();
2727
}
2828

29-
$object = id(new PhabricatorObjectQuery())
29+
$object = id(new ManiphestTaskQuery())
3030
->setViewer($viewer)
3131
->withPHIDs(array($object_phid))
32+
->needProjectPHIDs(true)
3233
->requireCapabilities(
3334
array(
3435
PhabricatorPolicyCapability::CAN_VIEW,
@@ -95,6 +96,7 @@ public function handleRequest(AphrontRequest $request) {
9596
$tasks = id(new ManiphestTaskQuery())
9697
->setViewer($viewer)
9798
->withPHIDs($task_phids)
99+
->needProjectPHIDs(true)
98100
->requireCapabilities(
99101
array(
100102
PhabricatorPolicyCapability::CAN_VIEW,
@@ -149,11 +151,13 @@ public function handleRequest(AphrontRequest $request) {
149151
->withPHIDs(array($object->getOwnerPHID()))
150152
->executeOne();
151153
}
154+
152155
$card = id(new ProjectBoardTaskCard())
153156
->setViewer($viewer)
154157
->setTask($object)
155158
->setOwner($owner)
156159
->setCanEdit(true)
160+
->setProject($project)
157161
->getItem();
158162

159163
return id(new AphrontAjaxResponse())->setContent(

src/applications/project/view/ProjectBoardTaskCard.php

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
final class ProjectBoardTaskCard extends Phobject {
44

55
private $viewer;
6+
private $project;
67
private $task;
78
private $owner;
89
private $canEdit;
@@ -15,6 +16,14 @@ public function getViewer() {
1516
return $this->viewer;
1617
}
1718

19+
public function setProject(PhabricatorProject $project) {
20+
$this->project = $project;
21+
return $this;
22+
}
23+
public function getProject() {
24+
return $this->project;
25+
}
26+
1827
public function setTask(ManiphestTask $task) {
1928
$this->task = $task;
2029
return $this;
@@ -44,13 +53,14 @@ public function getItem() {
4453
$task = $this->getTask();
4554
$owner = $this->getOwner();
4655
$can_edit = $this->getCanEdit();
56+
$viewer = $this->getViewer();
4757

4858
$color_map = ManiphestTaskPriority::getColorMap();
4959
$bar_color = idx($color_map, $task->getPriority(), 'grey');
5060

5161
$card = id(new PHUIObjectItemView())
5262
->setObject($task)
53-
->setUser($this->getViewer())
63+
->setUser($viewer)
5464
->setObjectName('T'.$task->getID())
5565
->setHeader($task->getTitle())
5666
->setGrippable($can_edit)
@@ -73,6 +83,18 @@ public function getItem() {
7383
$card->addAttribute($owner->renderLink());
7484
}
7585

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);
96+
}
97+
7698
return $card;
7799
}
78100

src/view/AphrontTagView.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,10 @@ public function getID() {
7777
return $this->id;
7878
}
7979

80+
public function isEmpty() {
81+
return empty($this->getTagContent());
82+
}
83+
8084
protected function getTagName() {
8185
return 'div';
8286
}

0 commit comments

Comments
 (0)