jenkins-bot has submitted this change and it was merged. Change subject: TitleSearchWidget: Use OO.ui.mixin.RequestManager ......................................................................
TitleSearchWidget: Use OO.ui.mixin.RequestManager Get that request management goodness that only LookupWidgets used to benefit from. We can undo the earlier hacky fix to avoid requests overrunning each other as part of this. Bug: T114175 Change-Id: I6ff686b3b157d23ff534357ce25ebcb4ef7efea1 --- M resources/src/mediawiki.widgets/mw.widgets.TitleSearchWidget.js 1 file changed, 24 insertions(+), 10 deletions(-) Approvals: Jforrester: Looks good to me, approved Esanders: Looks good to me, approved jenkins-bot: Verified diff --git a/resources/src/mediawiki.widgets/mw.widgets.TitleSearchWidget.js b/resources/src/mediawiki.widgets/mw.widgets.TitleSearchWidget.js index 546fbf8..96f9549 100644 --- a/resources/src/mediawiki.widgets/mw.widgets.TitleSearchWidget.js +++ b/resources/src/mediawiki.widgets/mw.widgets.TitleSearchWidget.js @@ -11,6 +11,7 @@ * * @class * @extends OO.ui.SearchWidget + * @mixins OO.ui.mixin.RequestManager * @mixins mw.widgets.TitleWidget * * @constructor @@ -23,6 +24,7 @@ // Mixin constructors mw.widgets.TitleWidget.call( this, config ); + OO.ui.mixin.RequestManager.call( this, config ); this.query.setValidation( this.isQueryValid.bind( this ) ); @@ -46,6 +48,7 @@ /* Setup */ OO.inheritClass( mw.widgets.TitleSearchWidget, OO.ui.SearchWidget ); + OO.mixinClass( mw.widgets.TitleSearchWidget, OO.ui.mixin.RequestManager ); OO.mixinClass( mw.widgets.TitleSearchWidget, mw.widgets.TitleWidget ); /* Methods */ @@ -72,19 +75,30 @@ mw.widgets.TitleSearchWidget.prototype.onQueryChange = function () { var widget = this; - if ( this.currentRequest ) { - this.currentRequest.abort(); - } - - this.currentRequest = this.getSuggestionsPromise(); - this.currentRequest.done( function ( response ) { + this.getRequestData().done( function ( data ) { // Parent method mw.widgets.TitleSearchWidget.parent.prototype.onQueryChange.call( widget ); - - widget.results.addItems( widget.getOptionsFromData( response.query || {} ) ); - - widget.currentRequest = false; + widget.results.addItems( widget.getOptionsFromData( data ) ); } ); }; + /** + * @inheritdoc OO.ui.mixin.RequestManager + */ + mw.widgets.TitleSearchWidget.prototype.getRequestQuery = function () { + return this.getQueryValue(); + }; + /** + * @inheritdoc OO.ui.mixin.RequestManager + */ + mw.widgets.TitleSearchWidget.prototype.getRequest = function () { + return this.getSuggestionsPromise(); + }; + /** + * @inheritdoc OO.ui.mixin.RequestManager + */ + mw.widgets.TitleSearchWidget.prototype.getRequestCacheDataFromResponse = function ( response ) { + return response.query || {}; + }; + }( jQuery, mediaWiki ) ); -- To view, visit https://gerrit.wikimedia.org/r/252592 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I6ff686b3b157d23ff534357ce25ebcb4ef7efea1 Gerrit-PatchSet: 4 Gerrit-Project: mediawiki/core Gerrit-Branch: master Gerrit-Owner: DLynch <dly...@wikimedia.org> Gerrit-Reviewer: Bartosz DziewoĆski <matma....@gmail.com> Gerrit-Reviewer: Catrope <roan.katt...@gmail.com> Gerrit-Reviewer: Edokter <er...@darcoury.nl> Gerrit-Reviewer: Esanders <esand...@wikimedia.org> Gerrit-Reviewer: Jack Phoenix <j...@countervandalism.net> Gerrit-Reviewer: Jforrester <jforres...@wikimedia.org> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits