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

Reply via email to