jenkins-bot has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/383832 )

Change subject: Show available languages on suggested pages filter
......................................................................


Show available languages on suggested pages filter

Bug: T176626
Change-Id: Ib2418ca379694082041f259b4d73d2c00785fdff
---
M modules/base/ext.cx.sitemapper.js
M modules/dashboard/ext.cx.dashboard.js
M modules/source/ext.cx.source.selector.js
3 files changed, 62 insertions(+), 41 deletions(-)

Approvals:
  Petar.petkovic: Looks good to me, but someone else must approve
  jenkins-bot: Verified
  Santhosh: Looks good to me, approved



diff --git a/modules/base/ext.cx.sitemapper.js 
b/modules/base/ext.cx.sitemapper.js
index cdd1d89..6116328 100644
--- a/modules/base/ext.cx.sitemapper.js
+++ b/modules/base/ext.cx.sitemapper.js
@@ -18,6 +18,7 @@
         */
        mw.cx.SiteMapper = function ( siteconfig ) {
                this.config = siteconfig;
+               this.languagePairsPromise = null;
        };
 
        /**
@@ -152,6 +153,36 @@
        };
 
        /**
+        * Get all the source and target languages.
+        *
+        * @return {jQuery.Promise}
+        */
+       mw.cx.SiteMapper.prototype.getLanguagePairs = function () {
+               var languagePairsAPIUrl,
+                       self = this;
+
+               if ( !this.languagePairsPromise ) {
+                       languagePairsAPIUrl = this.getCXServerUrl( 
'/list/languagepairs' );
+                       this.languagePairsPromise = $.get( languagePairsAPIUrl )
+                               .then( function ( response ) {
+                                       return {
+                                               targetLanguages: 
response.target,
+                                               sourceLanguages: response.source
+                                       };
+                               }, function ( response ) {
+                                       mw.log(
+                                               'Error getting language pairs 
from ' + languagePairsAPIUrl + ' . ' +
+                                               response.statusText + ' (' + 
response.status + '). ' +
+                                               response.responseText
+                                       );
+                                       mw.hook( 'mw.cx.error' ).fire( mw.msg( 
'cx-error-server-connection' ) );
+                                       self.languagePairsPromise = null;
+                               } );
+               }
+               return this.languagePairsPromise;
+       };
+
+       /**
         * Get the URL for Special:CX on the needed wiki
         * according to given source and target title and the target language.
         *
diff --git a/modules/dashboard/ext.cx.dashboard.js 
b/modules/dashboard/ext.cx.dashboard.js
index da7c6e1..8e8d908 100644
--- a/modules/dashboard/ext.cx.dashboard.js
+++ b/modules/dashboard/ext.cx.dashboard.js
@@ -437,25 +437,39 @@
         * Creates source and target language ULS for suggestions list
         */
        CXDashboard.prototype.createUlsForSuggestionsList = function () {
-               var list = this.lists.suggestions,
+               var self = this,
+                       list = this.lists.suggestions,
                        ulsOptions = {
                                menuWidth: 'medium',
-                               quickList: function () {
-                                       return mw.uls.getFrequentLanguageList();
-                               },
                                compact: true
                        };
 
-               createUls(
-                       list.languageFilter.$sourceLanguageFilter,
-                       this.setFilter.bind( this, 'sourceLanguage' ),
-                       ulsOptions
-               );
-               createUls(
-                       list.languageFilter.$targetLanguageFilter,
-                       this.setFilter.bind( this, 'targetLanguage' ),
-                       ulsOptions
-               );
+               this.siteMapper.getLanguagePairs().then( function ( data ) {
+                       createUls(
+                               list.languageFilter.$sourceLanguageFilter,
+                               self.setFilter.bind( self, 'sourceLanguage' ),
+                               $.extend( {
+                                       languages: getAutonyms( 
data.sourceLanguages ),
+                                       quickList: function () {
+                                               return 
mw.uls.getFrequentLanguageList().filter( function ( n ) {
+                                                       return 
data.sourceLanguages.indexOf( n ) !== -1;
+                                               } );
+                                       }
+                               }, ulsOptions )
+                       );
+                       createUls(
+                               list.languageFilter.$targetLanguageFilter,
+                               self.setFilter.bind( self, 'targetLanguage' ),
+                               $.extend( {
+                                       languages: getAutonyms( 
data.targetLanguages ),
+                                       quickList: function () {
+                                               return 
mw.uls.getFrequentLanguageList().filter( function ( n ) {
+                                                       return 
data.targetLanguages.indexOf( n ) !== -1;
+                                               } );
+                                       }
+                               }, ulsOptions )
+                       );
+               } );
        };
 
        /**
diff --git a/modules/source/ext.cx.source.selector.js 
b/modules/source/ext.cx.source.selector.js
index 7018a0c..b6b6eba 100644
--- a/modules/source/ext.cx.source.selector.js
+++ b/modules/source/ext.cx.source.selector.js
@@ -119,7 +119,9 @@
 
                this.isNarrowScreenSize = document.documentElement.clientWidth 
< this.narrowLimit;
 
-               this.getLanguagePairs().then( function () {
+               this.siteMapper.getLanguagePairs().then( function ( data ) {
+                       self.targetLanguages = data.targetLanguages;
+                       self.sourceLanguages = data.sourceLanguages;
                        self.render();
                        self.setDefaultLanguages();
                        self.prefill();
@@ -160,32 +162,6 @@
                        this.show();
                        this.check();
                }
-       };
-
-       /**
-        * Get all the source and target languages.
-        *
-        * @return {jQuery.Promise}
-        */
-       CXSourceSelector.prototype.getLanguagePairs = function () {
-               var languagePairsAPIUrl,
-                       cxSourceSelector = this;
-
-               languagePairsAPIUrl = this.siteMapper.getCXServerUrl( 
'/list/languagepairs' );
-
-               return $.get( languagePairsAPIUrl )
-                       .done( function ( response ) {
-                               cxSourceSelector.targetLanguages = 
response.target;
-                               cxSourceSelector.sourceLanguages = 
response.source;
-                       } )
-                       .fail( function ( response ) {
-                               mw.log(
-                                       'Error getting language pairs from ' + 
languagePairsAPIUrl + ' . ' +
-                                       response.statusText + ' (' + 
response.status + '). ' +
-                                       response.responseText
-                               );
-                               mw.hook( 'mw.cx.error' ).fire( mw.msg( 
'cx-error-server-connection' ) );
-                       } );
        };
 
        /**

-- 
To view, visit https://gerrit.wikimedia.org/r/383832
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ib2418ca379694082041f259b4d73d2c00785fdff
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/ContentTranslation
Gerrit-Branch: master
Gerrit-Owner: Esanders <esand...@wikimedia.org>
Gerrit-Reviewer: Petar.petkovic <ppetko...@wikimedia.org>
Gerrit-Reviewer: Santhosh <santhosh.thottin...@gmail.com>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to