[mediawiki.api.watch] Re-use watch() in unwatch().
authorKrinkle <krinkle@users.mediawiki.org>
Sun, 26 Feb 2012 15:57:01 +0000 (15:57 +0000)
committerKrinkle <krinkle@users.mediawiki.org>
Sun, 26 Feb 2012 15:57:01 +0000 (15:57 +0000)
- 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
resources/mediawiki.api/mediawiki.api.watch.js

index e0d943b..cff1619 100644 (file)
@@ -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',
index 3f2525a..8ed6832 100644 (file)
                 * @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',
                                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
                 * @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 );
                }
 
        } );