From 1fb5bbc1f7e8cd91fe547224e22e8d1e8e20bc1d Mon Sep 17 00:00:00 2001 From: =?utf8?q?Bartosz=20Dziewo=C5=84ski?= Date: Wed, 19 Aug 2015 00:11:14 +0200 Subject: [PATCH] mediawiki.api.upload: Use this.defaults.parameters instead of all-custom params Change-Id: I3326f30a52949bbe85aee9fcff39ca34002aab90 --- .../src/mediawiki.api/mediawiki.api.upload.js | 51 ++++++++----------- 1 file changed, 22 insertions(+), 29 deletions(-) diff --git a/resources/src/mediawiki.api/mediawiki.api.upload.js b/resources/src/mediawiki.api/mediawiki.api.upload.js index 9b29bbf6a9..cec352ae36 100644 --- a/resources/src/mediawiki.api/mediawiki.api.upload.js +++ b/resources/src/mediawiki.api/mediawiki.api.upload.js @@ -154,9 +154,9 @@ * @return {jQuery.Promise} */ uploadWithIframe: function ( file, data ) { - var tokenPromise = $.Deferred(), + var key, + tokenPromise = $.Deferred(), api = this, - filenameFound = false, deferred = $.Deferred(), nonce = getNonce(), id = 'uploadframe-' + nonce, @@ -164,13 +164,14 @@ iframe = getNewIframe( id ), $iframe = $( iframe ); - $form.addClass( 'mw-api-upload-form' ); + for ( key in data ) { + if ( !fieldsAllowed[key] ) { + delete data[key]; + } + } - $form.append( - getHiddenInput( 'action', 'upload' ), - getHiddenInput( 'format', 'json' ), - file - ); + data = $.extend( {}, this.defaults.parameters, { action: 'upload' }, data ); + $form.addClass( 'mw-api-upload-form' ); $form.css( 'display', 'none' ) .attr( { @@ -211,16 +212,10 @@ file.name = 'file'; $.each( data, function ( key, val ) { - if ( key === 'filename' ) { - filenameFound = true; - } - - if ( fieldsAllowed[key] === true ) { - $form.append( getHiddenInput( key, val ) ); - } + $form.append( getHiddenInput( key, val ) ); } ); - if ( !filenameFound && !data.stash ) { + if ( !data.filename && !data.stash ) { return $.Deferred().reject( 'Filename not included in file data.' ); } @@ -249,26 +244,24 @@ * @param {Object} data */ uploadWithFormData: function ( file, data ) { - var xhr, + var key, xhr, api = this, formData = new FormData(), - deferred = $.Deferred(), - filenameFound = false; - - formData.append( 'action', 'upload' ); - formData.append( 'format', 'json' ); + deferred = $.Deferred(); - $.each( data, function ( key, val ) { - if ( key === 'filename' ) { - filenameFound = true; + for ( key in data ) { + if ( !fieldsAllowed[key] ) { + delete data[key]; } + } - if ( fieldsAllowed[key] === true ) { - formData.append( key, val ); - } + data = $.extend( {}, this.defaults.parameters, { action: 'upload' }, data ); + + $.each( data, function ( key, val ) { + formData.append( key, val ); } ); - if ( !filenameFound && !data.stash ) { + if ( !data.filename && !data.stash ) { return $.Deferred().reject( 'Filename not included in file data.' ); } -- 2.20.1