mirror of
https://github.com/YunoHost-Apps/mediawiki_ynh.git
synced 2024-09-03 19:46:05 +02:00
74 lines
1.7 KiB
JavaScript
74 lines
1.7 KiB
JavaScript
/**
|
|
* @class mw.Api.plugin.watch
|
|
* @since 1.19
|
|
*/
|
|
( function ( mw, $ ) {
|
|
|
|
/**
|
|
* @private
|
|
* @context mw.Api
|
|
*
|
|
* @param {String|mw.Title} page Full page name or instance of mw.Title
|
|
* @param {Function} [ok] Success callback (deprecated)
|
|
* @param {Function} [err] Error callback (deprecated)
|
|
* @return {jQuery.Promise}
|
|
* @return {Function} return.done
|
|
* @return {Object} return.done.watch
|
|
* @return {string} return.done.watch.title Full pagename
|
|
* @return {boolean} return.done.watch.watched
|
|
* @return {string} return.done.watch.message Parsed HTML of the confirmational interface message
|
|
*/
|
|
function doWatchInternal( page, ok, err, addParams ) {
|
|
var params,
|
|
d = $.Deferred(),
|
|
apiPromise;
|
|
|
|
// Backwards compatibility (< MW 1.20)
|
|
d.done( ok ).fail( err );
|
|
|
|
params = {
|
|
action: 'watch',
|
|
title: String( page ),
|
|
token: mw.user.tokens.get( 'watchToken' ),
|
|
uselang: mw.config.get( 'wgUserLanguage' )
|
|
};
|
|
|
|
if ( addParams ) {
|
|
$.extend( params, addParams );
|
|
}
|
|
|
|
apiPromise = this.post( params )
|
|
.done( function ( data ) {
|
|
d.resolve( data.watch );
|
|
} )
|
|
.fail( d.reject );
|
|
|
|
return d.promise( { abort: apiPromise.abort } );
|
|
}
|
|
|
|
$.extend( mw.Api.prototype, {
|
|
/**
|
|
* Convenience method for `action=watch`.
|
|
*
|
|
* @inheritdoc #doWatchInternal
|
|
*/
|
|
watch: function ( page, ok, err ) {
|
|
return doWatchInternal.call( this, page, ok, err );
|
|
},
|
|
/**
|
|
* Convenience method for `action=watch&unwatch=1`.
|
|
*
|
|
* @inheritdoc #doWatchInternal
|
|
*/
|
|
unwatch: function ( page, ok, err ) {
|
|
return doWatchInternal.call( this, page, ok, err, { unwatch: 1 } );
|
|
}
|
|
|
|
} );
|
|
|
|
/**
|
|
* @class mw.Api
|
|
* @mixins mw.Api.plugin.watch
|
|
*/
|
|
|
|
}( mediaWiki, jQuery ) );
|