blob: ab0cee8272b94d8635e2dd0387fdac70a9a5aa96 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
'use strict';
/* eslint-disable no-implicit-globals */
/*!
* @author Santhosh Thottingal
* @author Niklas Laxström
* @license GPL-2.0-or-later
*/
var LanguagesMultiselectWidget = require( './LanguagesMultiselectWidget.js' );
// Needed for OOUI :(
window.LanguagesMultiselectWidget = LanguagesMultiselectWidget;
function configureLanguageInput( $form, $widget ) {
/** @type {LanguagesMultiselectWidget} */
var widget = OO.ui.infuse( $widget, { api: new mw.Api() } );
var $input = $( '<input>' ).prop( {
type: 'hidden',
name: 'prioritylangs',
value: widget.getValue()
} );
$form.prepend( $input );
widget.on( 'change', function () {
$input.val( widget.getValue() );
} );
}
function configurePostLinks( $container ) {
$container.on( 'click', '.mw-translate-jspost', function ( e ) {
var uri = new mw.Uri( e.target.href );
var params = uri.query;
params.token = mw.user.tokens.get( 'csrfToken' );
$.post( uri.path, params ).done( function () {
location.reload();
} );
e.preventDefault();
} );
}
// Init
$( function () {
var $widgets = $( '#mw-translate-SpecialPageTranslation-prioritylangs' );
configurePostLinks( $( '#mw-content-text' ) );
if ( $widgets.length ) {
configureLanguageInput( $( '.mw-tpt-sp-markform' ), $widgets );
}
} );
|