diff options
Diffstat (limited to 'resources/mediawiki.api/mediawiki.api.category.js')
-rw-r--r-- | resources/mediawiki.api/mediawiki.api.category.js | 35 |
1 files changed, 19 insertions, 16 deletions
diff --git a/resources/mediawiki.api/mediawiki.api.category.js b/resources/mediawiki.api/mediawiki.api.category.js index 4de52911..98a9c54b 100644 --- a/resources/mediawiki.api/mediawiki.api.category.js +++ b/resources/mediawiki.api/mediawiki.api.category.js @@ -14,12 +14,13 @@ * @return {boolean} return.done.isCategory Whether the category exists. */ isCategory: function ( title, ok, err ) { - var d = $.Deferred(); + var d = $.Deferred(), + apiPromise; + // Backwards compatibility (< MW 1.20) - d.done( ok ); - d.fail( err ); + d.done( ok ).fail( err ); - this.get( { + apiPromise = this.get( { prop: 'categoryinfo', titles: title.toString() } ) @@ -36,7 +37,7 @@ }) .fail( d.reject ); - return d.promise(); + return d.promise( { abort: apiPromise.abort } ); }, /** @@ -50,13 +51,14 @@ * @return {String[]} return.done.categories Matched categories */ getCategoriesByPrefix: function ( prefix, ok, err ) { - var d = $.Deferred(); + var d = $.Deferred(), + apiPromise; + // Backwards compatibility (< MW 1.20) - d.done( ok ); - d.fail( err ); + d.done( ok ).fail( err ); // Fetch with allpages to only get categories that have a corresponding description page. - this.get( { + apiPromise = this.get( { list: 'allpages', apprefix: prefix, apnamespace: mw.config.get('wgNamespaceIds').category @@ -72,7 +74,7 @@ }) .fail( d.reject ); - return d.promise(); + return d.promise( { abort: apiPromise.abort } ); }, @@ -88,12 +90,13 @@ * if title was not found. */ getCategories: function ( title, ok, err, async ) { - var d = $.Deferred(); + var d = $.Deferred(), + apiPromise; + // Backwards compatibility (< MW 1.20) - d.done( ok ); - d.fail( err ); + d.done( ok ).fail( err ); - this.get( { + apiPromise = this.get( { prop: 'categories', titles: title.toString() }, { @@ -114,10 +117,10 @@ } ); } d.resolve( ret ); - }) + } ) .fail( d.reject ); - return d.promise(); + return d.promise( { abort: apiPromise.abort } ); } } ); |