/*! * MediaWiki Widgets - MediaUserUploadsQueue class. * * @copyright 2011-2016 VisualEditor Team and others; see AUTHORS.txt * @license The MIT License (MIT); see LICENSE.txt */ ( function () { /** * @classdesc Media resource queue. * * @class * @extends mw.widgets.MediaResourceQueue * * @constructor * @description Create an instance of `mw.widgets.MediaUserUploadsQueue`. * @param {Object} [config] Configuration options * @param {number} config.maxHeight The maximum height of the media, used in the * search call to the API. */ mw.widgets.MediaUserUploadsQueue = function MwWidgetsMediaUserUploadsQueue( config ) { config = config || {}; // Parent constructor mw.widgets.MediaUserUploadsQueue.super.call( this, config ); if ( !mw.user.isAnon() ) { this.setUser( mw.user.getName() ); } }; /* Inheritance */ OO.inheritClass( mw.widgets.MediaUserUploadsQueue, mw.widgets.MediaResourceQueue ); /** * Override parent method to set up the providers according to * the file repos. * * @return {jQuery.Promise} Promise that resolves when the resources are set up */ mw.widgets.MediaUserUploadsQueue.prototype.setup = function () { return this.getFileRepos().then( ( sources ) => { if ( this.providers.length === 0 ) { // Set up the providers for ( let i = 0, len = sources.length; i < len; i++ ) { this.addProvider( new mw.widgets.MediaUserUploadsProvider( sources[ i ].apiurl, { name: sources[ i ].name, local: sources[ i ].local, scriptDirUrl: sources[ i ].scriptDirUrl, userParams: { gaiuser: this.getUser() }, staticParams: { iiurlheight: this.getMaxHeight() } } ) ); } } } ); }; /** * Set the user name. * * @param {string} user User name */ mw.widgets.MediaUserUploadsQueue.prototype.setUser = function ( user ) { this.setParams( { gaiuser: user } ); }; /** * Get the user name. * * @return {string} API search query */ mw.widgets.MediaUserUploadsQueue.prototype.getUser = function () { return this.getParams().gaiuser; }; }() );