Santhosh has uploaded a new change for review. https://gerrit.wikimedia.org/r/323502
Change subject: Allow API endpoint customization for mw.widgets.TitleWidget ...................................................................... Allow API endpoint customization for mw.widgets.TitleWidget Currently the API is not customizable in subclasses and always points to current wiki's api returned by mw.Api(). This patch allows subclasses to override the API so that a subclass can use a different API endpoint for querying titles. For example, searching for titles in a different language wikipedia in contexts such as translation of pages. Change-Id: I81811cdd1a0750a8335432eee8f971ab9e0b8ee7 --- M resources/src/mediawiki.widgets/mw.widgets.TitleWidget.js 1 file changed, 24 insertions(+), 13 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core refs/changes/02/323502/1 diff --git a/resources/src/mediawiki.widgets/mw.widgets.TitleWidget.js b/resources/src/mediawiki.widgets/mw.widgets.TitleWidget.js index e1e50ea..cf2cd3c 100644 --- a/resources/src/mediawiki.widgets/mw.widgets.TitleWidget.js +++ b/resources/src/mediawiki.widgets/mw.widgets.TitleWidget.js @@ -6,16 +6,6 @@ */ ( function ( $, mw ) { - var interwikiPrefixesPromise = new mw.Api().get( { - action: 'query', - meta: 'siteinfo', - siprop: 'interwikimap' - } ).then( function ( data ) { - return $.map( data.query.interwikimap, function ( interwiki ) { - return interwiki.prefix; - } ); - } ); - /** * Mixin for title widgets * @@ -93,6 +83,18 @@ this.namespace = namespace; }; + mw.widgets.TitleWidget.prototype.getInterwikiPrefixesPromise = function() { + return this.getApi().get( { + action: 'query', + meta: 'siteinfo', + siprop: 'interwikimap' + } ).then( function ( data ) { + return $.map( data.query.interwikimap, function ( interwiki ) { + return interwiki.prefix; + } ); + } ); + }; + /** * Get a promise which resolves with an API repsonse for suggested * links for the current query. @@ -108,7 +110,7 @@ } }; if ( mw.Title.newFromText( query ) ) { - return interwikiPrefixesPromise.then( function ( interwikiPrefixes ) { + return this.getInterwikiPrefixesPromise().then( function ( interwikiPrefixes ) { var params, interwiki = query.substring( 0, query.indexOf( ':' ) ); if ( @@ -142,11 +144,11 @@ params.prop.push( 'pageterms' ); params.wbptterms = 'description'; } - req = new mw.Api().get( params ); + req = widget.getApi().get( params ); promiseAbortObject.abort = req.abort.bind( req ); // TODO ew return req.then( function ( ret ) { if ( ret.query === undefined ) { - ret = new mw.Api().get( { action: 'query', titles: query } ); + ret = widget.getApi().get( { action: 'query', titles: query } ); promiseAbortObject.abort = ret.abort.bind( ret ); } return ret; @@ -161,6 +163,15 @@ }; /** + * Get the api for the title requests + * + * @return {mw.Api} MediaWiki API + */ + mw.widgets.TitleWidget.prototype.getApi = function () { + return new mw.Api(); + }; + + /** * Get option widgets from the server response * * @param {Object} data Query result -- To view, visit https://gerrit.wikimedia.org/r/323502 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I81811cdd1a0750a8335432eee8f971ab9e0b8ee7 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/core Gerrit-Branch: master Gerrit-Owner: Santhosh <santhosh.thottin...@gmail.com> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits