From 162cc56f02d082a0e2fe457e9bc9bfa4e046c84e Mon Sep 17 00:00:00 2001 From: Fomafix Date: Sun, 27 May 2018 23:11:28 +0200 Subject: [PATCH] Reorder functions to avoid forward references Remove /* eslint-disable no-use-before-define */. Change-Id: I001b50050d8c492aed99a3620b6fc03ffb29e135 --- resources/js/ext.uls.compactlinks.js | 196 +++++++++++++-------------- 1 file changed, 97 insertions(+), 99 deletions(-) diff --git a/resources/js/ext.uls.compactlinks.js b/resources/js/ext.uls.compactlinks.js index 6534ae36..8bb1f3eb 100644 --- a/resources/js/ext.uls.compactlinks.js +++ b/resources/js/ext.uls.compactlinks.js @@ -17,8 +17,6 @@ * @licence MIT License */ -/* eslint-disable no-use-before-define */ - ( function ( $, mw ) { 'use strict'; @@ -51,6 +49,103 @@ return $.uls.data.isRedirect( code ) || code; } + /** + * Filter the language list by previous languages. + * Not all previous languages will be present in interlanguage links, + * so we are filtering them. + * + * @param {string[]} languages Language codes + * @return {string[]} List of language codes supported by the article + */ + function filterByPreviousLanguages( languages ) { + var previousLanguages = mw.uls.getPreviousLanguages(); + + return $.grep( previousLanguages, function ( language ) { + return $.inArray( language, languages ) >= 0; + } ); + } + + /** + * Filter by languages that appear in the Babel box on the user page. + * + * @param {string[]} languages Language codes + * @return {string[]} List of language codes supported by the article + */ + function filterByBabelLanguages( languages ) { + var babelLanguages = mw.config.get( 'wgULSBabelLanguages', [] ); + + return $.grep( babelLanguages, function ( language ) { + return $.inArray( language, languages ) >= 0; + } ); + } + + /** + * Filter the language list by site picks. + * + * @param {string[]} languages Language codes + * @return {string[]} 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. + * + * @param {string[]} languages Language codes + * @return {string[]} List of language codes supported by the article + */ + function filterByCommonLanguages( languages ) { + var commonLanguages = mw.uls.getFrequentLanguageList(); + + return $.grep( commonLanguages, function ( language ) { + return $.inArray( language, languages ) >= 0; + } ); + } + + /** + * Filter the language list by globally common languages, i.e. + * this list is not user specific. + * + * @param {string[]} languages Language codes + * @return {string[]} List of language codes supported by the article + */ + function getExtraCommonLanguages( languages ) { + var commonLanguages = [ + 'zh', 'en', 'hi', 'ur', 'es', 'ar', 'ru', 'id', 'ms', 'pt', + 'fr', 'de', 'bn', 'ja', 'pnb', 'pa', 'jv', 'te', 'ta', 'ko', 'mr', 'tr', 'vi', + 'it', 'fa', 'sv', 'nl', 'pl' + ]; + + return $.grep( commonLanguages, function ( language ) { + return $.inArray( language, languages ) >= 0; + } ); + } + + /** + * Filter the language list by Translate's assistant languages. + * Where available, they're languages deemed useful by the user. + * + * @param {string[]} languages Language codes + * @return {string[]} List of language codes supported by the article + */ + function filterByAssistantLanguages( languages ) { + var assistantLanguages = mw.user.options.get( 'translate-editlangs' ); + + if ( assistantLanguages && assistantLanguages !== 'default' ) { + return $.grep( assistantLanguages.split( /,\s*/ ), function ( language ) { + return $.inArray( language, languages ) >= 0; + } ); + } + + return []; + } + /** * @class * @constructor @@ -308,103 +403,6 @@ return compactLanguages; }; - /** - * Filter the language list by previous languages. - * Not all previous languages will be present in interlanguage links, - * so we are filtering them. - * - * @param {string[]} languages Language codes - * @return {string[]} List of language codes supported by the article - */ - function filterByPreviousLanguages( languages ) { - var previousLanguages = mw.uls.getPreviousLanguages(); - - return $.grep( previousLanguages, function ( language ) { - return $.inArray( language, languages ) >= 0; - } ); - } - - /** - * Filter by languages that appear in the Babel box on the user page. - * - * @param {string[]} languages Language codes - * @return {string[]} List of language codes supported by the article - */ - function filterByBabelLanguages( languages ) { - var babelLanguages = mw.config.get( 'wgULSBabelLanguages', [] ); - - return $.grep( babelLanguages, function ( language ) { - return $.inArray( language, languages ) >= 0; - } ); - } - - /** - * Filter the language list by site picks. - * - * @param {string[]} languages Language codes - * @return {string[]} 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. - * - * @param {string[]} languages Language codes - * @return {string[]} List of language codes supported by the article - */ - function filterByCommonLanguages( languages ) { - var commonLanguages = mw.uls.getFrequentLanguageList(); - - return $.grep( commonLanguages, function ( language ) { - return $.inArray( language, languages ) >= 0; - } ); - } - - /** - * Filter the language list by globally common languages, i.e. - * this list is not user specific. - * - * @param {string[]} languages Language codes - * @return {string[]} List of language codes supported by the article - */ - function getExtraCommonLanguages( languages ) { - var commonLanguages = [ - 'zh', 'en', 'hi', 'ur', 'es', 'ar', 'ru', 'id', 'ms', 'pt', - 'fr', 'de', 'bn', 'ja', 'pnb', 'pa', 'jv', 'te', 'ta', 'ko', 'mr', 'tr', 'vi', - 'it', 'fa', 'sv', 'nl', 'pl' - ]; - - return $.grep( commonLanguages, function ( language ) { - return $.inArray( language, languages ) >= 0; - } ); - } - - /** - * Filter the language list by Translate's assistant languages. - * Where available, they're languages deemed useful by the user. - * - * @param {string[]} languages Language codes - * @return {string[]} List of language codes supported by the article - */ - function filterByAssistantLanguages( languages ) { - var assistantLanguages = mw.user.options.get( 'translate-editlangs' ); - - if ( assistantLanguages && assistantLanguages !== 'default' ) { - return $.grep( assistantLanguages.split( /,\s*/ ), function ( language ) { - return $.inArray( language, languages ) >= 0; - } ); - } - - return []; - } - /** * Filter the language list by languages that appear in * the page's text. This is done by looking for HTML elements with