From 4f4051a40d3ee5c827b08882ebca1d6d1618e3b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Laxstr=C3=B6m?= Date: Tue, 26 Jul 2016 15:01:57 +0200 Subject: [PATCH] CompactLinks: support sortPrepend from WikiBaseClient Bug: T138973 Change-Id: I64b7aa37d8a6b3cac92d492a33fe6f8cb04ce0e6 --- UniversalLanguageSelector.hooks.php | 9 ++++++++- resources/js/ext.uls.compactlinks.js | 15 +++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/UniversalLanguageSelector.hooks.php b/UniversalLanguageSelector.hooks.php index 6326246e..318ccca9 100644 --- a/UniversalLanguageSelector.hooks.php +++ b/UniversalLanguageSelector.hooks.php @@ -311,7 +311,8 @@ class UniversalLanguageSelectorHooks { $wgULSEventLogging, $wgULSImeSelectors, $wgULSNoImeSelectors, $wgULSFontRepositoryBasePath, - $wgExtensionAssetsPath; + $wgExtensionAssetsPath, + $wgWBClientSettings; // Place constant stuff here (not depending on request context) if ( is_string( $wgULSGeoService ) ) { @@ -334,6 +335,12 @@ class UniversalLanguageSelectorHooks { '/UniversalLanguageSelector/data/fontrepo/fonts/'; } + // Cannot check where whether CLL is enabled for a particular user. The overhead + // of including this data is small. + if ( isset( $wgWBClientSettings['sortPrepend'] ) ) { + $vars['wgULSCompactLinksPrepend'] = $wgWBClientSettings['sortPrepend']; + } + return true; } diff --git a/resources/js/ext.uls.compactlinks.js b/resources/js/ext.uls.compactlinks.js index 696cb865..d26167e9 100644 --- a/resources/js/ext.uls.compactlinks.js +++ b/resources/js/ext.uls.compactlinks.js @@ -226,6 +226,8 @@ // Previous languages are always the better suggestion // because the user has explicitly chosen them. filterByPreviousLanguages, + // Site specific highlights, mostly used on Wikimedia sites + filterBySitePicks, // Add all common languages to the beginning of array. // These are the most probable languages predicted by ULS. this.getCommonLanguages, @@ -277,6 +279,19 @@ } ); } + /** + * Filter the language list by site picks. + * + * @return {Array} List of language codes supported by the article + */ + function filterBySitePicks( languages ) { + var picks = mw.config.get( 'wgULSCompactLinksPrepend' ) || []; + + return $.grep( picks, function ( language ) { + return $.inArray( language, languages ) >= 0; + } ); + } + /** * Filter the language list by common languages. * Common languages are the most probable languages predicted by ULS.