From: Fomafix Date: Wed, 27 Jan 2016 15:31:07 +0000 (+0000) Subject: mw.widgets.TitleWidget.js: Share interwikiPrefixes between multiple instances X-Git-Tag: 1.31.0-rc.0~7519 X-Git-Url: https://git.cyclocoop.org/%27.WWW_URL.%27admin/?a=commitdiff_plain;h=a8eba66535b66632f22e96df443c1fc977a17a1a;p=lhc%2Fweb%2Fwiklou.git mw.widgets.TitleWidget.js: Share interwikiPrefixes between multiple instances The interwikiPrefixes are static and do not need to load separately for every instance. Bug: T124899 Change-Id: I316bdcc67ba176d22a70cd30fc3eb72bfe0be509 --- diff --git a/resources/src/mediawiki.widgets/mw.widgets.TitleWidget.js b/resources/src/mediawiki.widgets/mw.widgets.TitleWidget.js index b805e65516..8b02443ec5 100644 --- a/resources/src/mediawiki.widgets/mw.widgets.TitleWidget.js +++ b/resources/src/mediawiki.widgets/mw.widgets.TitleWidget.js @@ -6,6 +6,17 @@ */ ( function ( $, mw ) { + var interwikiPrefixes = [], + interwikiPrefixesPromise = new mw.Api().get( { + action: 'query', + meta: 'siteinfo', + siprop: 'interwikimap' + } ).done( function ( data ) { + $.each( data.query.interwikimap, function ( index, interwiki ) { + interwikiPrefixes.push( interwiki.prefix ); + } ); + } ); + /** * Mixin for title widgets * @@ -28,8 +39,6 @@ * @cfg {Object} [cache] Result cache which implements a 'set' method, taking keyed values as an argument */ mw.widgets.TitleWidget = function MwWidgetsTitleWidget( config ) { - var widget = this; - // Config initialization config = $.extend( { maxLength: 255, @@ -51,16 +60,6 @@ // Initialization this.$element.addClass( 'mw-widget-titleWidget' ); - this.interwikiPrefixes = []; - this.interwikiPrefixesPromise = new mw.Api().get( { - action: 'query', - meta: 'siteinfo', - siprop: 'interwikimap' - } ).done( function ( data ) { - $.each( data.query.interwikimap, function ( index, interwiki ) { - widget.interwikiPrefixes.push( interwiki.prefix ); - } ); - } ); }; /* Setup */ @@ -108,12 +107,12 @@ } }; if ( mw.Title.newFromText( query ) ) { - return this.interwikiPrefixesPromise.then( function () { + return interwikiPrefixesPromise.then( function () { var params, interwiki = query.substring( 0, query.indexOf( ':' ) ); if ( interwiki && interwiki !== '' && - widget.interwikiPrefixes.indexOf( interwiki ) !== -1 + interwikiPrefixes.indexOf( interwiki ) !== -1 ) { return $.Deferred().resolve( { query: { pages: [ {