Hi, Multimedians.
I've been talking with our new multimedia team, we're just getting to the point where we have a really good idea of where we want to go after a little while of doing work mostly on existing issues and refactoring efforts, and I have a small announcement to make.
In the next few months, we intend to work on pulling upload API logic into core, and writing a new interface for uploading files from VisualEditor. Our initial plan involved refactoring UploadWizard to a point where including it in VisualEditor would not be difficult, but our new plans include usability improvements that, in my opinion, would unnecessarily enmire our work. Our team will be submitting patches to OOJS-UI, MediaWiki Core, and VisualEditor itself in an effort to get this project off the ground, as well as tweaking configuration settings in mw-config and generally running around looking for code review.
Rest assured, we intend to maintain our commitment to fixing bugs in UploadWizard as they come up, as well as bugs in the myriad other Multimedia projects. Please continue to bother the Multimedia team if and when things go wrong, we are always happy to help you, or at least point you in the right direction.
Here is a rough roadmap of where we need to go in the next few months:
# mw.Api.plugin.upload API to automatically detect what methods are available for the browser, take a File object or file input, and perform the upload ## Base upload API with simple API call, quick and dirty, with gadget proof-of-concept https://phabricator.wikimedia.org/T103397?workflow=create ## Expand to use File API where available https://phabricator.wikimedia.org/T103398 ## Expand to support stashing with appropriate continue-upload API https://phabricator.wikimedia.org/T103399 ## {{stretch}} Expand to use chunked uploading where available https://phabricator.wikimedia.org/T103398
# Tie together all of those things into an Upload object or similar in core, so we can handle it with relative ease in our mostly-UI extension ## Create Upload model API in core https://phabricator.wikimedia.org/T103413 ### Base functionality - use the new upload API to upload a file, configurable to use stash ### Base functionality - finish stash upload ### Base functionality - set file description page text for upload (to be used in finish-stash call, or in initial upload if no stash option passed in)
# Upload OOUI widget can then just use all of those things, and it can live in VE instead of having to be across a couple of extensions. ## Create upload widget in VE https://phabricator.wikimedia.org/T91717 {{epic}} ### Upload inspector ### File input widget in OOUI {{done}} ### Take file from widget, use upload API in core to stash ### Description/licensing/category form ### Emit finished upload from widget ## Use upload widget for inserting files into VE https://phabricator.wikimedia.org/T91717 (new task?) ### Add upload widget as above ### Use emitted file to construct thumbnail (file API?), caption (based on description) ## Drag-and-drop https://phabricator.wikimedia.org/T40031 ## Copy-paste https://phabricator.wikimedia.org/T39932