MarkTraceur has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/221632

Change subject: Add stash support for mw.Api.upload
......................................................................

Add stash support for mw.Api.upload

Bug: T103399
Change-Id: I2be7d5d874861e4cc24897316cd4933eb85b2c8f
---
M resources/src/mediawiki.api/mediawiki.api.upload.js
1 file changed, 44 insertions(+), 2 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core 
refs/changes/32/221632/1

diff --git a/resources/src/mediawiki.api/mediawiki.api.upload.js 
b/resources/src/mediawiki.api/mediawiki.api.upload.js
index b26aed4..e7183c5 100644
--- a/resources/src/mediawiki.api/mediawiki.api.upload.js
+++ b/resources/src/mediawiki.api/mediawiki.api.upload.js
@@ -7,6 +7,8 @@
 ( function ( mw, $ ) {
        var nonce = 0,
                fieldsAllowed = {
+                       stash: true,
+                       filekey: true,
                        filename: true,
                        comment: true,
                        text: true,
@@ -202,7 +204,7 @@
                                }
                        } );
 
-                       if ( !filenameFound ) {
+                       if ( !filenameFound && !data.stash ) {
                                return $.Deferred().reject( 'Filename not 
included in file data.' );
                        }
 
@@ -239,7 +241,7 @@
                                }
                        } );
 
-                       if ( !filenameFound ) {
+                       if ( !filenameFound && !data.stash ) {
                                return $.Deferred().reject( 'Filename not 
included in file data.' );
                        }
 
@@ -273,6 +275,46 @@
                        } );
 
                        return deferred.promise();
+               },
+
+               /**
+                * Upload a file to the stash.
+                * @param {File|HTMLInputElement} file
+                * @param {Object} [data]
+                * @return {jQuery.Promise}
+                * @return {Function} return.finishStashUpload Call this 
function to finish the upload.
+                * @return {Object} return.finishStashUpload data Additional 
data for the upload.
+                */
+               uploadToStash: function ( file, data ) {
+                       var filekey,
+                               api = this;
+
+                       if ( !data.filename ) {
+                               return $.Deferred().reject( 'Filename not 
included in file data.' );
+                       }
+
+                       function finishUpload( moreData ) {
+                               data = $.extend( data, moreData );
+                               data.filekey = filekey;
+                               data.action = 'upload';
+                               data.format = 'json';
+
+                               if ( !data.filename ) {
+                                       return $.Deferred().reject( 'Filename 
not included in file data.' );
+                               }
+
+                               return api.postWithEditToken( data );
+                       }
+
+                       return this.upload( file, { stash: true, filename: 
data.filename } ).then( function ( result ) {
+                               if ( result && result.upload && 
result.upload.filekey ) {
+                                       filekey = result.upload.filekey;
+                               } else if ( result && ( result.error || 
result.warning ) ) {
+                                       return $.Deferred().reject( result );
+                               }
+
+                               return finishUpload;
+                       } );
                }
        } );
 

-- 
To view, visit https://gerrit.wikimedia.org/r/221632
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I2be7d5d874861e4cc24897316cd4933eb85b2c8f
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: MarkTraceur <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to