From eeb359bae6f5c503e554a48d85ec9a92a6475e9a Mon Sep 17 00:00:00 2001 From: Alan Huang Date: Wed, 8 Aug 2012 18:26:23 -0700 Subject: [PATCH] Make D3123 more consistent Summary: Put the function in the base class so all the Diffusion views can use it. Also use shinier tooltips. Test Plan: Browse Diffusion. Reviewers: epriestley Reviewed By: epriestley CC: aran, Korvin Differential Revision: https://secure.phabricator.com/D3206 --- .../view/DiffusionBrowseTableView.php | 13 ------------ .../view/DiffusionHistoryTableView.php | 4 ++-- .../diffusion/view/DiffusionTagListView.php | 4 ++-- .../diffusion/view/DiffusionView.php | 20 +++++++++++++++++++ 4 files changed, 24 insertions(+), 17 deletions(-) diff --git a/src/applications/diffusion/view/DiffusionBrowseTableView.php b/src/applications/diffusion/view/DiffusionBrowseTableView.php index b185d8cd17..7a371c04aa 100644 --- a/src/applications/diffusion/view/DiffusionBrowseTableView.php +++ b/src/applications/diffusion/view/DiffusionBrowseTableView.php @@ -34,19 +34,6 @@ final class DiffusionBrowseTableView extends DiffusionView { return $this; } - private static function renderName($name) { - $email = new PhutilEmailAddress($name); - if ($email->getDisplayName() || $email->getDomainName()) { - return phutil_render_tag( - 'span', - array( - 'title' => $email->getAddress(), - ), - phutil_escape_html($email->getDisplayName())); - } - return phutil_escape_html($name); - } - public function setUser(PhabricatorUser $user) { $this->user = $user; return $this; diff --git a/src/applications/diffusion/view/DiffusionHistoryTableView.php b/src/applications/diffusion/view/DiffusionHistoryTableView.php index bd2a113929..fb48834fe3 100644 --- a/src/applications/diffusion/view/DiffusionHistoryTableView.php +++ b/src/applications/diffusion/view/DiffusionHistoryTableView.php @@ -108,7 +108,7 @@ final class DiffusionHistoryTableView extends DiffusionView { if ($author_phid && isset($handles[$author_phid])) { $author = $handles[$author_phid]->renderLink(); } else { - $author = phutil_escape_html($history->getAuthorName()); + $author = self::renderName($history->getAuthorName()); } $different_committer = false; @@ -121,7 +121,7 @@ final class DiffusionHistoryTableView extends DiffusionView { if ($committer_phid && isset($handles[$committer_phid])) { $committer = $handles[$committer_phid]->renderLink(); } else { - $committer = phutil_escape_html($committer); + $committer = self::renderName($committer); } $author .= '/'.$committer; } diff --git a/src/applications/diffusion/view/DiffusionTagListView.php b/src/applications/diffusion/view/DiffusionTagListView.php index 080f4a841d..57ece7fddc 100644 --- a/src/applications/diffusion/view/DiffusionTagListView.php +++ b/src/applications/diffusion/view/DiffusionTagListView.php @@ -84,9 +84,9 @@ final class DiffusionTagListView extends DiffusionView { if ($commit && $commit->getAuthorPHID()) { $author = $this->handles[$commit->getAuthorPHID()]->renderLink(); } else if ($commit && $commit->getCommitData()) { - $author = phutil_escape_html($commit->getCommitData()->getAuthorName()); + $author = self::renderName($commit->getCommitData()->getAuthorName()); } else { - $author = phutil_escape_html($tag->getAuthor()); + $author = self::renderName($tag->getAuthor()); } $description = null; diff --git a/src/applications/diffusion/view/DiffusionView.php b/src/applications/diffusion/view/DiffusionView.php index 5cb6d93af1..767e4fb84a 100644 --- a/src/applications/diffusion/view/DiffusionView.php +++ b/src/applications/diffusion/view/DiffusionView.php @@ -147,4 +147,24 @@ abstract class DiffusionView extends AphrontView { "D{$id}"); } + final protected static function renderName($name) { + $email = new PhutilEmailAddress($name); + if ($email->getDisplayName() || $email->getDomainName()) { + Javelin::initBehavior('phabricator-tooltips', array()); + require_celerity_resource('aphront-tooltip-css'); + return javelin_render_tag( + 'span', + array( + 'sigil' => 'has-tooltip', + 'meta' => array( + 'tip' => $email->getAddress(), + 'align' => 'E', + 'size' => 'auto', + ), + ), + phutil_escape_html($email->getDisplayName())); + } + return phutil_escape_html($name); + } + }