Christopher Johnson (WMDE) has submitted this change and it was merged.
Change subject: Fixes incorrect labels for Blocker and Blocked Tasks in
TaskTableView
......................................................................
Fixes incorrect labels for Blocker and Blocked Tasks in TaskTableView
Adds icons
Adds tooltip for Blocker indicating what task it is blocking
Bug: T86775
Change-Id: I367fe2ba2790ae620a2b233c2cbd35654d281cbc
---
M src/view/burndown/TasksTableView.php
1 file changed, 79 insertions(+), 19 deletions(-)
Approvals:
Christopher Johnson (WMDE): Verified; Looks good to me, approved
diff --git a/src/view/burndown/TasksTableView.php
b/src/view/burndown/TasksTableView.php
index a92df5d..e0fec19 100644
--- a/src/view/burndown/TasksTableView.php
+++ b/src/view/burndown/TasksTableView.php
@@ -128,19 +128,28 @@
$output = array();
$rows = array();
foreach ($this->tasks as $task) {
- if (isset($map[$task->getPHID()]['independent'])) {
- $blocked = false;
- } elseif (isset($map[$task->getPHID()]['parent'])) {
- $blocked = false;
- } else {
+ if (isset($map[$task->getPHID()]['child'])) {
$blocked = true;
+ } else {
+ $blocked = false;
+ }
+
+ $parentphid = null;
+ if (isset($map[$task->getPHID()]['parent'])) {
+ $blocker = true;
+ $parentphid = $map[$task->getPHID()]['parent'];
+ } else {
+ $blocker = false;
}
$points = $sprintpoints->getTaskPoints($task->getPHID());
- $row = $this->addTaskToTree($output, $blocked, $task, $handles, $points);
- list ($task, $cdate,, $udate,, $owner_link, $numpriority,, $points,
$status) = $row[0];
- $row['sort'] = $this->setSortOrder($row, $order, $task, $cdate, $udate,
$owner_link, $numpriority, $points, $status);
+ $row = $this->addTaskToTree($output, $blocked, $parentphid, $blocker,
+ $task, $handles, $points);
+ list ($task, $cdate, , $udate, , $owner_link, $numpriority, , $points,
+ $status) = $row[0];
+ $row['sort'] = $this->setSortOrder($row, $order, $task, $cdate, $udate,
+ $owner_link, $numpriority, $points, $status);
$rows[] = $row;
}
$rows = isort($rows, 'sort');
@@ -156,8 +165,8 @@
return $rows;
}
- private function setSortOrder ($row, $order, $task, $cdate, $udate,
$owner_link, $numpriority,
- $points, $status) {
+ private function setSortOrder ($row, $order, $task, $cdate, $udate,
+ $owner_link, $numpriority, $points, $status) {
switch ($order) {
case 'Task':
$row['sort'] = $task;
@@ -194,20 +203,16 @@
if ($parents =
$edges[$task->getPHID()][
ManiphestTaskDependedOnByTaskEdgeType::EDGECONST]) {
foreach ($parents as $parent) {
- // Make sure this task is in this sprint.
- if (isset($tasks[$parent['dst']]))
+ if (isset($tasks[$parent['dst']]))
$map[$task->getPHID()]['parent'][] = $parent['dst'];
}
} elseif ($children =
$edges[$task->getPHID()][ManiphestTaskDependsOnTaskEdgeType::EDGECONST]) {
foreach ($children as $child) {
- // Make sure this task is in this sprint.
if (isset($tasks[$child['dst']])) {
$map[$task->getPHID()]['child'][] = $child['dst'];
}
}
- } else {
- $map[$task->getPHID()]['independent'][] = $task->getPHID();
}
}
return $map;
@@ -244,7 +249,8 @@
return $task->getPriority();
}
- private function addTaskToTree($output, $blocked, $task, $handles, $points) {
+ private function addTaskToTree($output, $blocked, $parentphid, $blocker,
+ $task, $handles, $points) {
$cdate = $this->getTaskCreatedDate($task);
$date_created = phabricator_datetime($cdate, $this->viewer);
@@ -257,6 +263,18 @@
$priority = $this->getPriority($task);
$priority_name = $this->getPriorityName($task);
+ if ($blocker === true) {
+ $blockericon = $this->getIconforBlocker($parentphid);
+ } else {
+ $blockericon = '';
+ }
+
+ if ($blocked === true) {
+ $blockedicon = $this->getIconforBlocked();
+ } else {
+ $blockedicon = '';
+ }
+
$output[] = array(
phutil_safe_html(phutil_tag(
'a',
@@ -266,8 +284,7 @@
? 'phui-tag-core-closed'
: '',
),
- $task->getMonogram() . ': ' . $task->getTitle()
- ) . ($blocked ? ' <em title="This task is a parent of
another task.">[BLOCKED]</em>' : '')),
+ array ($this->buildTaskLink($task), $blockericon,
$blockedicon))),
$cdate,
$date_created,
$udate,
@@ -282,4 +299,47 @@
return $output;
}
-}
\ No newline at end of file
+ private function getIconforBlocker($parentphid) {
+ $ptask = $this->getTaskforPHID(array_shift($parentphid));
+ $task = array_shift($ptask);
+ $linktask = $this->buildTaskLink($task);
+ $sigil = 'has-tooltip';
+ $meta = array(
+ 'tip' => pht('Blocks: '.$linktask),
+ 'size' => 500,
+ 'align' => 'E',);
+ $image = id(new PHUIIconView())
+ ->addSigil($sigil)
+ ->setMetadata($meta)
+ ->setSpriteSheet(PHUIIconView::SPRITE_PROJECTS)
+ ->setIconFont('fa-wrench', 'green')
+ ->setText('Blocker');
+ return $image;
+ }
+
+ private function getIconforBlocked() {
+ $image = id(new PHUIIconView())
+ ->setSpriteSheet(PHUIIconView::SPRITE_PROJECTS)
+ ->setIconFont('fa-lock', 'red')
+ ->setText('Blocked');
+ return $image;
+ }
+
+ private function buildTaskLink($task) {
+ $linktext = $task->getMonogram().': '.$task->getTitle().' ';
+ return $linktext;
+ }
+
+ private function buildTaskMonogram($task) {
+ $monogram = '/'.$task->getMonogram().'/';
+ return $monogram;
+ }
+
+ private function getTaskforPHID($parentphid) {
+ $task = id(new ManiphestTaskQuery())
+ ->setViewer($this->viewer)
+ ->withPHIDs(array($parentphid))
+ ->execute();
+ return $task;
+ }
+}
--
To view, visit https://gerrit.wikimedia.org/r/185395
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I367fe2ba2790ae620a2b233c2cbd35654d281cbc
Gerrit-PatchSet: 5
Gerrit-Project: phabricator/extensions/Sprint
Gerrit-Branch: master
Gerrit-Owner: Christopher Johnson (WMDE) <[email protected]>
Gerrit-Reviewer: Christopher Johnson (WMDE) <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits