mediawiki.feedback: Resolve redirects when posting
authorBartosz Dziewoński <matma.rex@gmail.com>
Mon, 30 Jun 2014 21:57:01 +0000 (23:57 +0200)
committerAmire80 <amir.aharoni@mail.huji.ac.il>
Sat, 12 Jul 2014 21:55:43 +0000 (21:55 +0000)
To make this possible, extended mw.Api#newSection with an
'additionalParams' parameters.

Change-Id: I64102c920870e9d3ca6f1a6a712044b22029709e

resources/src/mediawiki.api/mediawiki.api.edit.js
resources/src/mediawiki/mediawiki.feedback.js

index edfb34a..403d372 100644 (file)
                 * @param {mw.Title|String} title Target page
                 * @param {string} header
                 * @param {string} message wikitext message
+                * @param {Object} [additionalParams] Additional API parameters, e.g. `{ redirect: true }`
                 * @param {Function} [ok] Success handler (deprecated)
                 * @param {Function} [err] Error handler (deprecated)
                 * @return {jQuery.Promise}
                 */
-               newSection: function ( title, header, message, ok, err ) {
+               newSection: function ( title, header, message, additionalParams, ok, err ) {
+                       // Until we remove 'ok' and 'err' parameters, we have to support code that passes them but not
+                       // additionalParams...
+                       if ( $.isFunction( additionalParams ) ) {
+                               err = ok;
+                               ok = additionalParams;
+                               additionalParams = undefined;
+                       }
                        if ( ok || err ) {
                                mw.track( 'mw.deprecate', 'api.cbParam' );
                                mw.log.warn( msg );
                        }
-                       return this.postWithEditToken( {
+                       return this.postWithEditToken( $.extend( {
                                action: 'edit',
                                section: 'new',
                                format: 'json',
                                title: String( title ),
                                summary: header,
                                text: message
-                       } ).done( ok ).fail( err );
+                       }, additionalParams ) ).done( ok ).fail( err );
                }
        } );
 
index 6533db1..beff14e 100644 (file)
 
                        this.displaySubmitting();
 
-                       this.api.newSection( this.title, subject, message ).done( ok ).fail( err );
+                       // Post the message, resolving redirects
+                       this.api.newSection( this.title, subject, message, { redirect: true } ).done( ok ).fail( err );
                },
 
                /**