Santhosh has uploaded a new change for review. https://gerrit.wikimedia.org/r/85366
Change subject: Move statsbar construction to frontend ...................................................................... Move statsbar construction to frontend * When source language is same as current language, there is a language selector near the tiles. On language change, now the tiles are refreshed Change-Id: If099d3ef0443d1df1e4be4b76d35e7b27a3615b3 --- M Resources.php M resources/css/ext.translate.mainpage.css M resources/js/ext.translate.mainpage.js M specials/SpecialTwnMainPage.php 4 files changed, 48 insertions(+), 28 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/TwnMainPage refs/changes/66/85366/1 diff --git a/Resources.php b/Resources.php index 33421bd..a64e650 100644 --- a/Resources.php +++ b/Resources.php @@ -24,6 +24,7 @@ 'messages' => array( 'twnmp-show-more-projects', 'twnmp-select-target-language', + 'percent', ), ) + $resourcePaths; diff --git a/resources/css/ext.translate.mainpage.css b/resources/css/ext.translate.mainpage.css index c249311..e5be71c 100644 --- a/resources/css/ext.translate.mainpage.css +++ b/resources/css/ext.translate.mainpage.css @@ -568,4 +568,9 @@ div.ext-translate-msggroup-selector-menu:after, div.ext-translate-msggroup-selector-menu:before { display: none; -} \ No newline at end of file +} + +/* Override the statsbar on-hover info for TWN Mainpage */ +.tux-statsbar-info { + display: none; +} diff --git a/resources/js/ext.translate.mainpage.js b/resources/js/ext.translate.mainpage.js index 73788c8..8848506 100644 --- a/resources/js/ext.translate.mainpage.js +++ b/resources/js/ext.translate.mainpage.js @@ -32,7 +32,7 @@ $sameLanguageULSTrigger.uls( { languages: sameLanguageULSLanguages, top: '20%', - onSelect: mw.uls.changeLanguage, + onSelect: showMessageGroupStats, quickList: function () { var frequentLanguageList = mw.uls.getFrequentLanguageList(), sourceLanguagePosition = $.inArray( sourceLanguage, frequentLanguageList ); @@ -46,14 +46,50 @@ } /** + * Show the message group stats bars. + */ + function showMessageGroupStats ( language ) { + mw.translate.loadLanguageStats( language ).done( function () { + $( '.project-tile' ).each( function() { + var $tile = $( this ), + translated, proofread, + $statsbar = $tile.find( '.project-statsbar' ), + msggroupid = $tile.data( 'msggroupid' ), + stats; + + $statsbar.empty().removeData( 'languagestatsbar' ); + $statsbar.languagestatsbar( { + language: language, + group: msggroupid + } ); + stats = $statsbar.data( 'languagestatsbar' ).getStatsForGroup( msggroupid ); + translated = stats.translated - stats.proofread; + translated = 100 * translated / stats.total; + proofread = 100 * stats.proofread / stats.total; + $tile.find( '.project-stats' ) + .empty() + .append( + $( '<span>' ).addClass( 'translate' ) + .text( mw.msg( 'percent', Math.round( translated ) ) ), + $( '<span>' ).addClass('proofread') + .text( mw.msg( 'percent', Math.round( proofread ) ) ) + ); + } ); + } ); + } + + /** * Setup the project tiles in the main page. */ function setupProjectTiles () { - var language, $selector, + var language = mw.config.get( 'wgUserLanguage' ), + $selector, $tiles = $( '.project-tile' ); if ( $( '.twn-mainpage-project-tiles' ).data( 'same-sourcelanguage' ) ) { setupTargetLanguageSelector(); + } else { + showMessageGroupStats( language ); } $tiles.hover( @@ -72,12 +108,11 @@ } } ); + if ( $tiles.length !== 8 ) { // We have less than 8 tiles, so all are shown return; } - - language = mw.config.get( 'wgUserLanguage' ); // Prepare one project tile to be a message group selector. $selector = $( '<div>' ) diff --git a/specials/SpecialTwnMainPage.php b/specials/SpecialTwnMainPage.php index 7b3cc24..27b3a15 100644 --- a/specials/SpecialTwnMainPage.php +++ b/specials/SpecialTwnMainPage.php @@ -191,7 +191,6 @@ $id = $group->getId(); $uiLanguage = $this->getLanguage()->getCode(); $groupLanguage = $group->getSourceLanguage(); - $acts = ''; if ( $uiLanguage === $groupLanguage ) { $statsHtml = Html::element( 'div', @@ -199,26 +198,6 @@ $this->msg( 'twn-mainpage-total-messages-in-language' ) ->numParams( $stats[MessageGroupStats::TOTAL] ) ->text() - ); - } else { - $statsbar = StatsBar::getNew( $id, $uiLanguage, $stats ); - $translated = $stats[MessageGroupStats::TRANSLATED]; - $proofread = $stats[MessageGroupStats::PROOFREAD]; - if ( $stats[MessageGroupStats::TOTAL] ) { - $translated = round( 100 * $translated / $stats[MessageGroupStats::TOTAL] ); - $proofread = round( 100 * $proofread / $stats[MessageGroupStats::TOTAL] ); - } - $statsHtml = $statsbar->getHtml( $this->getContext() ); - - $acts = Html::element( - 'span', - array( 'class' => 'translate' ), - $this->msg( 'percent' )->numParams( $translated )->text() - ); - $acts .= Html::element( - 'span', - array( 'class' => 'proofread' ), - $this->msg( 'percent' )->numParams( $proofread )->text() ); } @@ -250,13 +229,13 @@ $out = <<<HTML <div class="three columns twn-mainpage-project-tile"> - <div class="project-tile $linked" $dataUrl> + <div class="project-tile $linked" $dataUrl data-msggroupid="$id"> <div class="row project-top"> <div class="project-icon four columns">$image</div> <div class="project-content eight columns"> <div class="row project-name" dir="auto">$label</div> <div class="row project-statsbar">$statsHtml</div> - <div class="row project-stats">$acts</div> + <div class="row project-stats"></div> </div> </div> <div class="row project-actions hide"> -- To view, visit https://gerrit.wikimedia.org/r/85366 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: If099d3ef0443d1df1e4be4b76d35e7b27a3615b3 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/TwnMainPage Gerrit-Branch: master Gerrit-Owner: Santhosh <santhosh.thottin...@gmail.com> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits