Page MenuHomePhabricator

D16342.id39300.diff
No OneTemporary

D16342.id39300.diff

diff --git a/resources/celerity/map.php b/resources/celerity/map.php
--- a/resources/celerity/map.php
+++ b/resources/celerity/map.php
@@ -7,7 +7,7 @@
*/
return array(
'names' => array(
- 'core.pkg.css' => 'efc0f11c',
+ 'core.pkg.css' => '8b87d014',
'core.pkg.js' => '13c7e56a',
'darkconsole.pkg.js' => 'e7393ebb',
'differential.pkg.css' => '3fb7f532',
@@ -25,7 +25,7 @@
'rsrc/css/aphront/notification.css' => '3f6c89c9',
'rsrc/css/aphront/panel-view.css' => '8427b78d',
'rsrc/css/aphront/phabricator-nav-view.css' => 'ac79a758',
- 'rsrc/css/aphront/table-view.css' => '8df59783',
+ 'rsrc/css/aphront/table-view.css' => '832656fd',
'rsrc/css/aphront/tokenizer.css' => '056da01b',
'rsrc/css/aphront/tooltip.css' => '1a07aea8',
'rsrc/css/aphront/typeahead-browse.css' => '8904346a',
@@ -537,7 +537,7 @@
'aphront-list-filter-view-css' => '5d6f0526',
'aphront-multi-column-view-css' => 'fd18389d',
'aphront-panel-view-css' => '8427b78d',
- 'aphront-table-view-css' => '8df59783',
+ 'aphront-table-view-css' => '832656fd',
'aphront-tokenizer-control-css' => '056da01b',
'aphront-tooltip-css' => '1a07aea8',
'aphront-typeahead-control-css' => 'd4f16145',
diff --git a/src/infrastructure/graph/ManiphestTaskGraph.php b/src/infrastructure/graph/ManiphestTaskGraph.php
--- a/src/infrastructure/graph/ManiphestTaskGraph.php
+++ b/src/infrastructure/graph/ManiphestTaskGraph.php
@@ -3,6 +3,8 @@
final class ManiphestTaskGraph
extends PhabricatorObjectGraph {
+ private $seedMaps = array();
+
protected function getEdgeTypes() {
return array(
ManiphestTaskDependedOnByTaskEdgeType::EDGECONST,
@@ -57,7 +59,12 @@
$object->getTitle());
$link = array(
- $object->getMonogram(),
+ phutil_tag(
+ 'span',
+ array(
+ 'class' => 'object-name',
+ ),
+ $object->getMonogram()),
' ',
$link,
);
@@ -67,9 +74,33 @@
$link = $viewer->renderHandle($phid);
}
+
+
+ if ($this->isParentTask($object)) {
+ $marker = 'fa-chevron-circle-up bluegrey';
+ $marker_tip = pht('Direct Parent');
+ } else if ($this->isChildTask($object)) {
+ $marker = 'fa-chevron-circle-down bluegrey';
+ $marker_tip = pht('Direct Subtask');
+ } else {
+ $marker = null;
+ }
+
+ if ($marker) {
+ $marker = id(new PHUIIconView())
+ ->setIcon($marker)
+ ->addSigil('has-tooltip')
+ ->setMetadata(
+ array(
+ 'tip' => $marker_tip,
+ 'align' => 'E',
+ ));
+ }
+
$link = AphrontTableView::renderSingleDisplayLine($link);
return array(
+ $marker,
$trace,
$status,
$assigned,
@@ -82,12 +113,14 @@
->setHeaders(
array(
null,
+ null,
pht('Status'),
pht('Assigned'),
pht('Task'),
))
->setColumnClasses(
array(
+ 'nudgeright',
'threads',
'graph-status',
null,
@@ -95,4 +128,24 @@
));
}
+ private function isParentTask(ManiphestTask $task) {
+ $map = $this->getSeedMap(ManiphestTaskDependedOnByTaskEdgeType::EDGECONST);
+ return isset($map[$task->getPHID()]);
+ }
+
+ private function isChildTask(ManiphestTask $task) {
+ $map = $this->getSeedMap(ManiphestTaskDependsOnTaskEdgeType::EDGECONST);
+ return isset($map[$task->getPHID()]);
+ }
+
+ private function getSeedMap($type) {
+ if (!isset($this->seedMaps[$type])) {
+ $maps = $this->getEdges($type);
+ $phids = idx($maps, $this->getSeedPHID(), array());
+ $phids = array_fuse($phids);
+ $this->seedMaps[$type] = $phids;
+ }
+
+ return $this->seedMaps[$type];
+ }
}
diff --git a/src/infrastructure/graph/PhabricatorObjectGraph.php b/src/infrastructure/graph/PhabricatorObjectGraph.php
--- a/src/infrastructure/graph/PhabricatorObjectGraph.php
+++ b/src/infrastructure/graph/PhabricatorObjectGraph.php
@@ -50,6 +50,10 @@
));
}
+ final public function getSeedPHID() {
+ return $this->seedPHID;
+ }
+
final public function isEmpty() {
return (count($this->getNodes()) <= 2);
}
diff --git a/webroot/rsrc/css/aphront/table-view.css b/webroot/rsrc/css/aphront/table-view.css
--- a/webroot/rsrc/css/aphront/table-view.css
+++ b/webroot/rsrc/css/aphront/table-view.css
@@ -228,8 +228,8 @@
position: static;
}
-.aphront-table-view tr.closed td.object-link,
-.aphront-table-view tr.alt-closed td.object-link {
+.aphront-table-view tr.closed td.object-link .object-name,
+.aphront-table-view tr.alt-closed td.object-link .object-name {
text-decoration: line-through;
color: rgba({$alphablack}, 0.5);
}

File Metadata

Mime Type
text/plain
Expires
Wed, Mar 5, 4:44 AM (1 d, 3 h ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7223568
Default Alt Text
D16342.id39300.diff (4 KB)

Event Timeline