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

Reply via email to