Merge "Import: Handle uploads with sha1 starting with 0 properly"
[mediawiki.git] / resources / src / mediawiki / api / messages.js
blobdf21eb281290cd8708d657648b7297fef9994f20
1 /**
2  * Allows to retrieve a specific or a set of
3  * messages to be added to mw.messages and returned
4  * by the Api.
5  *
6  * @class mw.Api.plugin.messages
7  * @since 1.27
8  */
9 ( function ( mw, $ ) {
10         'use strict';
12         $.extend( mw.Api.prototype, {
13                 /**
14                  * Get a set of messages.
15                  *
16                  * @param {Array} messages Messages to retrieve
17                  * @return {jQuery.Promise}
18                  */
19                 getMessages: function ( messages ) {
20                         return this.get( {
21                                 action: 'query',
22                                 meta: 'allmessages',
23                                 ammessages: messages,
24                                 amlang: mw.config.get( 'wgUserLanguage' ),
25                                 formatversion: 2
26                         } ).then( function ( data ) {
27                                 var result = {};
29                                 $.each( data.query.allmessages, function ( i, obj ) {
30                                         if ( !obj.missing ) {
31                                                 result[ obj.name ] = obj.content;
32                                         }
33                                 } );
35                                 return result;
36                         } );
37                 },
39                 /**
40                  * Loads a set of mesages and add them to mw.messages.
41                  *
42                  * @param {Array} messages Messages to retrieve
43                  * @return {jQuery.Promise}
44                  */
45                 loadMessages: function ( messages ) {
46                         return this.getMessages( messages ).then( $.proxy( mw.messages, 'set' ) );
47                 }
48         } );
50         /**
51          * @class mw.Api
52          * @mixins mw.Api.plugin.messages
53          */
55 }( mediaWiki, jQuery ) );