[MediaWiki-commits] [Gerrit] Fix regression in main page user stats widget for logged in ... - change (mediawiki...TwnMainPage)
Nikerabbit has uploaded a new change for review. https://gerrit.wikimedia.org/r/91827 Change subject: Fix regression in main page user stats widget for logged in users .. Fix regression in main page user stats widget for logged in users Gravatar could be missing or subtitle be wrong. Caught by browser tests. Likely caused by incorrect rebasing of an old patch. Some refactoring to simplify the html as well. Change-Id: I1f9f02cab331f984d46ddd0cc995bb042f34ad77 --- M resources/css/ext.translate.mainpage.css M specials/SpecialTwnMainPage.php M tests/browser/features/support/pages/main_page.rb 3 files changed, 31 insertions(+), 51 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/TwnMainPage refs/changes/27/91827/1 diff --git a/resources/css/ext.translate.mainpage.css b/resources/css/ext.translate.mainpage.css index 39dca69..e5d0aba 100644 --- a/resources/css/ext.translate.mainpage.css +++ b/resources/css/ext.translate.mainpage.css @@ -232,7 +232,7 @@ min-height: 75px; } -.twn-mainpage-alllang-stats { +.subtitle { padding: 0 10px; } diff --git a/specials/SpecialTwnMainPage.php b/specials/SpecialTwnMainPage.php index ace9605..6201846 100644 --- a/specials/SpecialTwnMainPage.php +++ b/specials/SpecialTwnMainPage.php @@ -596,27 +596,42 @@ $languageCode = $this-getLanguage()-getCode(); $languageName = TranslateUtils::getLanguageName( $languageCode, $languageCode ); - $subtitle = ''; + $groupsSourceLanguage = MessageGroups::haveSingleSourceLanguage( + MessageGroups::getAllGroups() + ); $link = Html::element( 'a', array( 'href' = SpecialPage::getTitleFor( 'LanguageStats' )-getLocalUrl(), ), $this-msg( 'twnmp-your-view-language-stats' )-text() ); if ( TranslateSandbox::isSandboxed( $this-getUser() ) ) { + $subtitleClass = 'for-sandbox'; + $subtitle = ''; $rows = $this-getSandboxRows(); + } elseif ( $groupsSourceLanguage === $languageCode ) { + $subtitleClass = 'for-all-languages'; + $subtitle = $this-msg( 'twnmp-your-translations-stats-all-languages' )-escaped(); + $rows = $this-getTranslationStatsRows( '' ); } else { + $subtitleClass = Sanitizer::escapeClass( for-language-$languageCode ); $subtitle = htmlspecialchars( $languageName ); - $rows = $this-getTranslationStatsRows(); + $rows = $this-getTranslationStatsRows( $languageCode ); } + + $email = $this-getUser()-getEmail(); + $avatar = 'https://secure.gravatar.com/avatar/' . md5( strtolower( $email ) ); + $background = background-image: url('$avatar?d=mm');; + $background = htmlspecialchars( $background ); + $background = style=\$background\; return HTML div class=five columns main-widget stats-widget - div class=row user-stats-title + div class=row user-stats-title $background h2 {$this-msg( 'twnmp-your-translations-stats' )-escaped()} /h2 - div class=subtitle$subtitle/div + div class=subtitle $subtitleClass$subtitle/div /div $rows div class=row langstats-link$link/div @@ -625,20 +640,13 @@ HTML; } - public function getTranslationStatsRows() { - $groupsSourceLanguage = MessageGroups::haveSingleSourceLanguage( - MessageGroups::getAllGroups() - ); - - $languageCode = $this-getLanguage()-getCode(); - - if ( $groupsSourceLanguage === $languageCode ) { - # Do stats for all languages, denoted by empty string - $languageForStats = ''; - } else { - $languageForStats = $languageCode; - } - + /** +* Gets data and formats language stats row. Use empty string to +* get stats for all languages. +* @param string $languageForStats Language code or empty string. +* @return string HTML +*/ + public function getTranslationStatsRows( $languageForStats ) { $stale = 60 * 5; $expired = 60 * 60 * 12; $cacher = new CachedStat( userstats-$languageForStats, $stale, $expired, @@ -657,41 +665,13 @@ ); } - $out = Html::openElement( - 'div', - array( 'class' = 'five columns main-widget stats-widget' ) - ); - -
[MediaWiki-commits] [Gerrit] Fix regression in main page user stats widget for logged in ... - change (mediawiki...TwnMainPage)
jenkins-bot has submitted this change and it was merged. Change subject: Fix regression in main page user stats widget for logged in users .. Fix regression in main page user stats widget for logged in users Gravatar could be missing or subtitle be wrong. Caught by browser tests. Likely caused by incorrect rebasing of an old patch. Some refactoring to simplify the html as well. Change-Id: I1f9f02cab331f984d46ddd0cc995bb042f34ad77 --- M resources/css/ext.translate.mainpage.css M specials/SpecialTwnMainPage.php M tests/browser/features/support/pages/main_page.rb 3 files changed, 31 insertions(+), 51 deletions(-) Approvals: KartikMistry: Looks good to me, approved jenkins-bot: Verified diff --git a/resources/css/ext.translate.mainpage.css b/resources/css/ext.translate.mainpage.css index 39dca69..e5d0aba 100644 --- a/resources/css/ext.translate.mainpage.css +++ b/resources/css/ext.translate.mainpage.css @@ -232,7 +232,7 @@ min-height: 75px; } -.twn-mainpage-alllang-stats { +.subtitle { padding: 0 10px; } diff --git a/specials/SpecialTwnMainPage.php b/specials/SpecialTwnMainPage.php index ace9605..6201846 100644 --- a/specials/SpecialTwnMainPage.php +++ b/specials/SpecialTwnMainPage.php @@ -596,27 +596,42 @@ $languageCode = $this-getLanguage()-getCode(); $languageName = TranslateUtils::getLanguageName( $languageCode, $languageCode ); - $subtitle = ''; + $groupsSourceLanguage = MessageGroups::haveSingleSourceLanguage( + MessageGroups::getAllGroups() + ); $link = Html::element( 'a', array( 'href' = SpecialPage::getTitleFor( 'LanguageStats' )-getLocalUrl(), ), $this-msg( 'twnmp-your-view-language-stats' )-text() ); if ( TranslateSandbox::isSandboxed( $this-getUser() ) ) { + $subtitleClass = 'for-sandbox'; + $subtitle = ''; $rows = $this-getSandboxRows(); + } elseif ( $groupsSourceLanguage === $languageCode ) { + $subtitleClass = 'for-all-languages'; + $subtitle = $this-msg( 'twnmp-your-translations-stats-all-languages' )-escaped(); + $rows = $this-getTranslationStatsRows( '' ); } else { + $subtitleClass = Sanitizer::escapeClass( for-language-$languageCode ); $subtitle = htmlspecialchars( $languageName ); - $rows = $this-getTranslationStatsRows(); + $rows = $this-getTranslationStatsRows( $languageCode ); } + + $email = $this-getUser()-getEmail(); + $avatar = 'https://secure.gravatar.com/avatar/' . md5( strtolower( $email ) ); + $background = background-image: url('$avatar?d=mm');; + $background = htmlspecialchars( $background ); + $background = style=\$background\; return HTML div class=five columns main-widget stats-widget - div class=row user-stats-title + div class=row user-stats-title $background h2 {$this-msg( 'twnmp-your-translations-stats' )-escaped()} /h2 - div class=subtitle$subtitle/div + div class=subtitle $subtitleClass$subtitle/div /div $rows div class=row langstats-link$link/div @@ -625,20 +640,13 @@ HTML; } - public function getTranslationStatsRows() { - $groupsSourceLanguage = MessageGroups::haveSingleSourceLanguage( - MessageGroups::getAllGroups() - ); - - $languageCode = $this-getLanguage()-getCode(); - - if ( $groupsSourceLanguage === $languageCode ) { - # Do stats for all languages, denoted by empty string - $languageForStats = ''; - } else { - $languageForStats = $languageCode; - } - + /** +* Gets data and formats language stats row. Use empty string to +* get stats for all languages. +* @param string $languageForStats Language code or empty string. +* @return string HTML +*/ + public function getTranslationStatsRows( $languageForStats ) { $stale = 60 * 5; $expired = 60 * 60 * 12; $cacher = new CachedStat( userstats-$languageForStats, $stale, $expired, @@ -657,41 +665,13 @@ ); } - $out = Html::openElement( - 'div', - array( 'class' = 'five columns main-widget stats-widget' ) - ); - - $email = $this-getUser()-getEmail(); -