Alex Monk has uploaded a new change for review.
https://gerrit.wikimedia.org/r/56323
Change subject: Allow JS API callers to abort requests
......................................................................
Allow JS API callers to abort requests
I'd like to use this for I006ffbe7
Change-Id: I3a8ae7a4c92dda5038cf7722ebd1d41dab0a7ef9
---
M resources/mediawiki.api/mediawiki.api.category.js
M resources/mediawiki.api/mediawiki.api.edit.js
M resources/mediawiki.api/mediawiki.api.js
M resources/mediawiki.api/mediawiki.api.parse.js
M resources/mediawiki.api/mediawiki.api.watch.js
5 files changed, 16 insertions(+), 16 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core
refs/changes/23/56323/1
diff --git a/resources/mediawiki.api/mediawiki.api.category.js
b/resources/mediawiki.api/mediawiki.api.category.js
index 4de5291..5ed27a5 100644
--- a/resources/mediawiki.api/mediawiki.api.category.js
+++ b/resources/mediawiki.api/mediawiki.api.category.js
@@ -19,7 +19,7 @@
d.done( ok );
d.fail( err );
- this.get( {
+ var apiPromise = this.get( {
prop: 'categoryinfo',
titles: title.toString()
} )
@@ -36,7 +36,7 @@
})
.fail( d.reject );
- return d.promise();
+ return d.promise( { abort: apiPromise.abort } );
},
/**
@@ -56,7 +56,7 @@
d.fail( err );
// Fetch with allpages to only get categories that have
a corresponding description page.
- this.get( {
+ var apiPromise = this.get( {
list: 'allpages',
apprefix: prefix,
apnamespace:
mw.config.get('wgNamespaceIds').category
@@ -72,7 +72,7 @@
})
.fail( d.reject );
- return d.promise();
+ return d.promise( { abort: apiPromise.abort } );
},
@@ -93,7 +93,7 @@
d.done( ok );
d.fail( err );
- this.get( {
+ var apiPromise = this.get( {
prop: 'categories',
titles: title.toString()
}, {
@@ -114,10 +114,10 @@
} );
}
d.resolve( ret );
- })
+ } )
.fail( d.reject );
- return d.promise();
+ return d.promise( { abort: apiPromise.abort } );
}
} );
diff --git a/resources/mediawiki.api/mediawiki.api.edit.js
b/resources/mediawiki.api/mediawiki.api.edit.js
index 3c775ad..c0d6a51 100644
--- a/resources/mediawiki.api/mediawiki.api.edit.js
+++ b/resources/mediawiki.api/mediawiki.api.edit.js
@@ -62,7 +62,7 @@
d.done( ok );
d.fail( err );
- this.get( {
+ var apiPromise = this.get( {
action: 'tokens',
type: 'edit'
}, {
@@ -87,7 +87,7 @@
})
.fail( d.reject );
- return d.promise();
+ return d.promise( { abort: apiPromise.abort } );
},
/**
diff --git a/resources/mediawiki.api/mediawiki.api.js
b/resources/mediawiki.api/mediawiki.api.js
index cf7443f..d72f081 100644
--- a/resources/mediawiki.api/mediawiki.api.js
+++ b/resources/mediawiki.api/mediawiki.api.js
@@ -147,7 +147,7 @@
}
// Make the AJAX request
- $.ajax( ajaxOptions )
+ var xhr = $.ajax( ajaxOptions )
// If AJAX fails, reject API call with error
code 'http'
// and details in second argument.
.fail( function ( xhr, textStatus, exception ) {
@@ -172,9 +172,9 @@
} );
// Return the Promise
- return apiDeferred.promise().fail( function ( code,
details ) {
+ return apiDeferred.promise( { abort: xhr.abort }
).fail( function ( code, details ) {
mw.log( 'mw.Api error: ', code, details );
- });
+ } );
}
};
diff --git a/resources/mediawiki.api/mediawiki.api.parse.js
b/resources/mediawiki.api/mediawiki.api.parse.js
index ea0388c..7f2a0d1 100644
--- a/resources/mediawiki.api/mediawiki.api.parse.js
+++ b/resources/mediawiki.api/mediawiki.api.parse.js
@@ -20,7 +20,7 @@
d.done( ok );
d.fail( err );
- this.get( {
+ var apiPromise = this.get( {
action: 'parse',
text: wikitext
} )
@@ -31,7 +31,7 @@
} )
.fail( d.reject );
- return d.promise();
+ return d.promise( { abort: apiPromise.abort } );
}
} );
diff --git a/resources/mediawiki.api/mediawiki.api.watch.js
b/resources/mediawiki.api/mediawiki.api.watch.js
index c86a90a..1317e74 100644
--- a/resources/mediawiki.api/mediawiki.api.watch.js
+++ b/resources/mediawiki.api/mediawiki.api.watch.js
@@ -35,13 +35,13 @@
$.extend( params, addParams );
}
- this.post( params )
+ var apiPromise = this.post( params )
.done( function ( data ) {
d.resolve( data.watch );
} )
.fail( d.reject );
- return d.promise();
+ return d.promise( { abort: apiPromise.abort } );
}
$.extend( mw.Api.prototype, {
--
To view, visit https://gerrit.wikimedia.org/r/56323
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I3a8ae7a4c92dda5038cf7722ebd1d41dab0a7ef9
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Alex Monk <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits