summaryrefslogtreecommitdiff
path: root/www/wiki/resources/src/mediawiki.widgets/MediaSearch/mw.widgets.MediaResourceQueue.js
diff options
context:
space:
mode:
Diffstat (limited to 'www/wiki/resources/src/mediawiki.widgets/MediaSearch/mw.widgets.MediaResourceQueue.js')
-rw-r--r--www/wiki/resources/src/mediawiki.widgets/MediaSearch/mw.widgets.MediaResourceQueue.js68
1 files changed, 68 insertions, 0 deletions
diff --git a/www/wiki/resources/src/mediawiki.widgets/MediaSearch/mw.widgets.MediaResourceQueue.js b/www/wiki/resources/src/mediawiki.widgets/MediaSearch/mw.widgets.MediaResourceQueue.js
new file mode 100644
index 00000000..34fa44b4
--- /dev/null
+++ b/www/wiki/resources/src/mediawiki.widgets/MediaSearch/mw.widgets.MediaResourceQueue.js
@@ -0,0 +1,68 @@
+/*!
+ * MediaWiki Widgets - MediaResourceQueue class.
+ *
+ * @copyright 2011-2016 VisualEditor Team and others; see AUTHORS.txt
+ * @license The MIT License (MIT); see LICENSE.txt
+ */
+( function ( $, mw ) {
+
+ /**
+ * MediaWiki media resource queue.
+ *
+ * @class
+ * @extends mw.widgets.APIResultsQueue
+ *
+ * @constructor
+ * @param {Object} [config] Configuration options
+ * @cfg {number} maxHeight The maximum height of the media, used in the
+ * search call to the API.
+ */
+ mw.widgets.MediaResourceQueue = function MwWidgetsMediaResourceQueue( config ) {
+ config = config || {};
+
+ // Parent constructor
+ mw.widgets.MediaResourceQueue.super.call( this, config );
+
+ this.maxHeight = config.maxHeight || 200;
+ };
+
+ /* Inheritance */
+ OO.inheritClass( mw.widgets.MediaResourceQueue, mw.widgets.APIResultsQueue );
+
+ /**
+ * Fetch the file repos.
+ *
+ * @return {jQuery.Promise} Promise that resolves when the resources are set up
+ */
+ mw.widgets.MediaResourceQueue.prototype.getFileRepos = function () {
+ var defaultSource = [ {
+ url: mw.util.wikiScript( 'api' ),
+ local: ''
+ } ];
+
+ if ( !this.fileRepoPromise ) {
+ this.fileRepoPromise = new mw.Api().get( {
+ action: 'query',
+ meta: 'filerepoinfo'
+ } ).then(
+ function ( resp ) {
+ return resp.query && resp.query.repos || defaultSource;
+ },
+ function () {
+ return $.Deferred().resolve( defaultSource );
+ }
+ );
+ }
+
+ return this.fileRepoPromise;
+ };
+
+ /**
+ * Get image maximum height
+ *
+ * @return {string} Image max height
+ */
+ mw.widgets.MediaResourceQueue.prototype.getMaxHeight = function () {
+ return this.maxHeight;
+ };
+}( jQuery, mediaWiki ) );