diff --git a/src/applications/differential/field/specification/DifferentialReviewersFieldSpecification.php b/src/applications/differential/field/specification/DifferentialReviewersFieldSpecification.php index b624620033..280fb5c8a8 100644 --- a/src/applications/differential/field/specification/DifferentialReviewersFieldSpecification.php +++ b/src/applications/differential/field/specification/DifferentialReviewersFieldSpecification.php @@ -145,7 +145,21 @@ final class DifferentialReviewersFieldSpecification $other_reviewers = array_flip($revision->getReviewers()); unset($other_reviewers[$primary_reviewer]); if ($other_reviewers) { - $suffix = ' (+'.(count($other_reviewers)).')'; + $names = array(); + foreach ($other_reviewers as $reviewer => $_) { + $names[] = phutil_escape_html( + $this->getHandle($reviewer)->getLinkName()); + } + $suffix = ' '.javelin_render_tag( + 'abbr', + array( + 'sigil' => 'has-tooltip', + 'meta' => array( + 'tip' => implode(', ', $names), + 'align' => 'E', + ), + ), + '(+'.(count($names)).')'); } else { $suffix = null; } @@ -157,11 +171,7 @@ final class DifferentialReviewersFieldSpecification public function getRequiredHandlePHIDsForRevisionList( DifferentialRevision $revision) { - $primary_reviewer = $revision->getPrimaryReviewer(); - if ($primary_reviewer) { - return array($primary_reviewer); - } - return array(); + return $revision->getReviewers(); } public function renderValueForMail($phase) { diff --git a/src/applications/differential/view/DifferentialRevisionListView.php b/src/applications/differential/view/DifferentialRevisionListView.php index 53df9b23e1..36cb15f2f8 100644 --- a/src/applications/differential/view/DifferentialRevisionListView.php +++ b/src/applications/differential/view/DifferentialRevisionListView.php @@ -67,6 +67,9 @@ final class DifferentialRevisionListView extends AphrontView { throw new Exception("Call setUser() before render()!"); } + Javelin::initBehavior('phabricator-tooltips', array()); + require_celerity_resource('aphront-tooltip-css'); + $flags = id(new PhabricatorFlagQuery()) ->withOwnerPHIDs(array($user->getPHID())) ->withObjectPHIDs(mpull($this->revisions, 'getPHID')) @@ -85,11 +88,18 @@ final class DifferentialRevisionListView extends AphrontView { if (isset($flagged[$phid])) { $class = PhabricatorFlagColor::getCSSClass($flagged[$phid]->getColor()); $note = $flagged[$phid]->getNote(); - $flag = phutil_render_tag( + $flag = javelin_render_tag( 'div', - array( + $note ? array( + 'class' => 'phabricator-flag-icon '.$class, + 'sigil' => 'has-tooltip', + 'meta' => array( + 'tip' => $note, + 'align' => 'N', + 'size' => 240, + ), + ) : array( 'class' => 'phabricator-flag-icon '.$class, - 'title' => $note, ), ''); }