From a8eba66535b66632f22e96df443c1fc977a17a1a Mon Sep 17 00:00:00 2001 From: Fomafix Date: Wed, 27 Jan 2016 15:31:07 +0000 Subject: [PATCH] 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 --- .../mw.widgets.TitleWidget.js | 27 +++++++++---------- 1 file changed, 13 insertions(+), 14 deletions(-) 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: [ { -- 2.20.1