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