3f2525ad30d2feca97e9d355948810fd61ac3f97
[lhc/web/wiklou.git] / resources / mediawiki.api / mediawiki.api.watch.js
1 /**
2 * Additional mw.Api methods to assist with (un)watching wiki pages.
3 * @since 1.19
4 */
5 ( function( $, mw ) {
6
7 $.extend( mw.Api.prototype, {
8 /**
9 * Convinience method for 'action=watch'.
10 *
11 * @param page {String|mw.Title} Full page name or instance of mw.Title
12 * @param success {Function} callback to which the watch object will be passed
13 * watch object contains 'title' (full page name), 'watched' (boolean) and
14 * 'message' (parsed HTML of the 'addedwatchtext' message).
15 * @param err {Function} callback if error (optional)
16 * @return {jqXHR}
17 */
18 watch: function( page, success, err ) {
19 var params, ok;
20 params = {
21 action: 'watch',
22 title: String( page ),
23 token: mw.user.tokens.get( 'watchToken' ),
24 uselang: mw.config.get( 'wgUserLanguage' )
25 };
26 ok = function( data ) {
27 success( data.watch );
28 };
29 return this.post( params, { ok: ok, err: err } );
30 },
31 /**
32 * Convinience method for 'action=watch&unwatch='.
33 *
34 * @param page {String|mw.Title} Full page name or instance of mw.Title
35 * @param success {Function} callback to which the watch object will be passed
36 * watch object contains 'title' (full page name), 'unwatched' (boolean) and
37 * 'message' (parsed HTML of the 'removedwatchtext' message).
38 * @param err {Function} callback if error (optional)
39 * @return {jqXHR}
40 */
41 unwatch: function( page, success, err ) {
42 var params, ok;
43 params = {
44 action: 'watch',
45 unwatch: 1,
46 title: String( page ),
47 token: mw.user.tokens.get( 'watchToken' ),
48 uselang: mw.config.get( 'wgUserLanguage' )
49 };
50 ok = function( data ) {
51 success( data.watch );
52 };
53 return this.post( params, { ok: ok, err: err } );
54 }
55
56 } );
57
58 } )( jQuery, mediaWiki );