Merge "Reset scoped session for upload jobs after deferred updates"
[lhc/web/wiklou.git] / resources / src / mediawiki / api / messages.js
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';
11
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 = {};
28
29 $.each( data.query.allmessages, function ( i, obj ) {
30 if ( !obj.missing ) {
31 result[ obj.name ] = obj.content;
32 }
33 } );
34
35 return result;
36 } );
37 },
38
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 } );
49
50 /**
51 * @class mw.Api
52 * @mixins mw.Api.plugin.messages
53 */
54
55 }( mediaWiki, jQuery ) );