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 @@ -84,9 +84,18 @@ ' ', $link, ); + + $subtype_tag = null; + + $subtype = $object->newSubtypeObject(); + if ($subtype && $subtype->hasTagView()) { + $subtype_tag = $subtype->newTagView() + ->setSlimShady(true); + } } else { $status = null; $assigned = null; + $subtype_tag = null; $link = $viewer->renderHandle($phid); } @@ -115,18 +124,23 @@ $marker, $trace, $status, + $subtype_tag, $assigned, $link, ); } protected function newTable(AphrontTableView $table) { + $subtype_map = id(new ManiphestTask())->newEditEngineSubtypeMap(); + $has_subtypes = ($subtype_map->getCount() > 1); + return $table ->setHeaders( array( null, null, pht('Status'), + pht('Subtype'), pht('Assigned'), pht('Task'), )) @@ -136,12 +150,15 @@ 'threads', 'graph-status', null, + null, 'wide pri object-link', )) ->setColumnVisibility( array( true, !$this->getRenderOnlyAdjacentNodes(), + true, + $has_subtypes, )) ->setDeviceVisibility( array( @@ -150,6 +167,11 @@ // On mobile, we only show the actual graph drawing if we're on the // standalone page, since it can take over the screen otherwise. $this->getIsStandalone(), + true, + + // On mobile, don't show subtypes since they're relatively less + // important and we're more pressured for space. + false, )); } @@ -180,6 +202,7 @@ null, null, null, + null, pht("\xC2\xB7 \xC2\xB7 \xC2\xB7"), ); }