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();
- $avatar = 'https://secure.gravatar.com/avatar/' . md5(
strtolower( $email ) );
- $out .= Html::openElement(
- 'div',
- array(
- 'class' => 'row user-stats-title',
- 'style' => "background-image:
url('$avatar?d=mm');",
- )
- );
-
- $out .= Html::element(
- 'h2',
- array(),
- $this->msg( 'twnmp-your-translations-stats' )->text()
- );
-
- $languageName = TranslateUtils::getLanguageName( $languageCode,
$languageCode );
- if ( $groupsSourceLanguage === $languageCode ) {
+ if ( $languageForStats === '' ) {
$translationStatsRankingMsg =
'twnmp-translations-translator-ranking-source';
-
- $out .= Html::element(
- 'div',
- array( 'class' => 'twn-mainpage-alllang-stats'
),
- $this->msg(
'twnmp-your-translations-stats-all-languages' )->text()
- );
+ $languageName = '';
} else {
$translationStatsRankingMsg =
'twnmp-translations-translator-ranking';
+ $languageName = TranslateUtils::getLanguageName(
$languageForStats, $languageForStats );
}
-
- $out .= Html::closeElement( 'div' );
$myuser = $this->getUser()->getName();
diff --git a/tests/browser/features/support/pages/main_page.rb
b/tests/browser/features/support/pages/main_page.rb
index edb3999..88c65f3 100644
--- a/tests/browser/features/support/pages/main_page.rb
+++ b/tests/browser/features/support/pages/main_page.rb
@@ -27,7 +27,7 @@
text_field(:search_field, id: 'twnmp-search-field')
button(:search_button, id: 'twnmp-search-button')
- div(:statistics_for_all_languages, class: 'twn-mainpage-alllang-stats')
+ div(:statistics_for_all_languages, class: 'for-all-languages')
button(:project_tile_language_selector, class:
'same-language-uls-trigger')
a(:english, text: 'English')
--
To view, visit https://gerrit.wikimedia.org/r/91827
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I1f9f02cab331f984d46ddd0cc995bb042f34ad77
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/TwnMainPage
Gerrit-Branch: master
Gerrit-Owner: Nikerabbit <[email protected]>
Gerrit-Reviewer: KartikMistry <[email protected]>
Gerrit-Reviewer: jenkins-bot
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits