From f1146002288cde616a7fbcab39cf55b7ee98f794 Mon Sep 17 00:00:00 2001 From: Krinkle Date: Sun, 26 Feb 2012 15:57:01 +0000 Subject: [PATCH] [mediawiki.api.watch] Re-use watch() in unwatch(). - Fix dependency issue. In practice not an issue due to user.tokens being in the HTML output before the first mw.loader.load() - Follows-up r107969, r107350 --- resources/Resources.php | 5 ++++- .../mediawiki.api/mediawiki.api.watch.js | 22 +++++++------------ 2 files changed, 12 insertions(+), 15 deletions(-) diff --git a/resources/Resources.php b/resources/Resources.php index e0d943b5ad..cff1619897 100644 --- a/resources/Resources.php +++ b/resources/Resources.php @@ -537,7 +537,10 @@ return array( ), 'mediawiki.api.watch' => array( 'scripts' => 'resources/mediawiki.api/mediawiki.api.watch.js', - 'dependencies' => array( 'mediawiki.api', 'mediawiki.user' ), + 'dependencies' => array( + 'mediawiki.api', + 'user.tokens', + ), ), 'mediawiki.debug' => array( 'scripts' => 'resources/mediawiki/mediawiki.debug.js', diff --git a/resources/mediawiki.api/mediawiki.api.watch.js b/resources/mediawiki.api/mediawiki.api.watch.js index 3f2525ad30..8ed6832091 100644 --- a/resources/mediawiki.api/mediawiki.api.watch.js +++ b/resources/mediawiki.api/mediawiki.api.watch.js @@ -12,10 +12,12 @@ * @param success {Function} callback to which the watch object will be passed * watch object contains 'title' (full page name), 'watched' (boolean) and * 'message' (parsed HTML of the 'addedwatchtext' message). + * @param _unwatch {Boolean} Internally used to re-use this logic for unwatch(), + * do not use outside this module. * @param err {Function} callback if error (optional) * @return {jqXHR} */ - watch: function( page, success, err ) { + watch: function( page, success, err, _unwatch ) { var params, ok; params = { action: 'watch', @@ -23,13 +25,16 @@ token: mw.user.tokens.get( 'watchToken' ), uselang: mw.config.get( 'wgUserLanguage' ) }; + if ( _unwatch ) { + params.unwatch = 1; + } ok = function( data ) { success( data.watch ); }; return this.post( params, { ok: ok, err: err } ); }, /** - * Convinience method for 'action=watch&unwatch='. + * Convinience method for 'action=watch&unwatch=1'. * * @param page {String|mw.Title} Full page name or instance of mw.Title * @param success {Function} callback to which the watch object will be passed @@ -39,18 +44,7 @@ * @return {jqXHR} */ unwatch: function( page, success, err ) { - var params, ok; - params = { - action: 'watch', - unwatch: 1, - title: String( page ), - token: mw.user.tokens.get( 'watchToken' ), - uselang: mw.config.get( 'wgUserLanguage' ) - }; - ok = function( data ) { - success( data.watch ); - }; - return this.post( params, { ok: ok, err: err } ); + return this.watch( page, success, err, true ); } } ); -- 2.20.1