File: ve.init.MWVESwitchPopupWidget.js

package info (click to toggle)
mediawiki 1%3A1.35.13-1%2Bdeb11u2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 274,932 kB
  • sloc: php: 677,563; javascript: 572,709; sql: 11,565; python: 4,447; xml: 3,145; sh: 892; perl: 788; ruby: 496; pascal: 365; makefile: 128
file content (65 lines) | stat: -rw-r--r-- 1,989 bytes parent folder | download
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
55
56
57
58
59
60
61
62
63
64
65
/*!
 * VisualEditor user interface MWVESwitchPopupWidget class.
 *
 * @copyright 2011-2020 VisualEditor Team and others; see AUTHORS.txt
 * @license The MIT License (MIT); see LICENSE.txt
 */

mw.libs.ve = mw.libs.ve || {};
/**
 *
 *
 * @class
 * @extends OO.ui.PopupWidget
 *
 * @constructor
 * @param {string} mode Current edit mode
 * @param {Object} [config] Configuration options
 */
mw.libs.ve.SwitchPopupWidget = function MWLibsVESwitchPopupWidget( mode, config ) {
	var $content, showAgainLayout, showAgainCheckbox,
		prefix = mode === 'visual' ? 'visualeditor-mweditmodewt' : 'visualeditor-mweditmodeve',
		option = mode === 'visual' ? 'visualeditor-hidevisualswitchpopup' : 'visualeditor-hidesourceswitchpopup';

	// Parent constructor
	mw.libs.ve.SwitchPopupWidget.super.call( this, $.extend( {
		autoClose: true,
		head: true,
		// The following messages are used here:
		// * visualeditor-mweditmodewt-popup-title
		// * visualeditor-mweditmodeve-popup-title
		label: mw.msg( prefix + '-popup-title' ),
		padded: true
	}, config ) );

	// The following messages are used here:
	// * visualeditor-mweditmodewt-popup-body
	// * visualeditor-mweditmodeve-popup-body
	$content = $( '<p>' ).text( mw.msg( prefix + '-popup-body' ) );

	if ( !mw.user.isAnon() ) {
		showAgainCheckbox = new OO.ui.CheckboxInputWidget()
			.on( 'change', function ( value ) {
				var configValue = value ? '1' : '';
				new mw.Api().saveOption( option, configValue );
				mw.user.options.set( option, configValue );
			} );

		showAgainLayout = new OO.ui.FieldLayout( showAgainCheckbox, {
			align: 'inline',
			label: mw.msg( 'visualeditor-mweditmodeve-showagain' )
		} );
		$content = $content.add( showAgainLayout.$element );
	}

	this.$body.append( $content );

	this.$element
		// HACK: Pretend to be a PopupTool
		// TODO: Create upstream PopupListToolGroup
		.addClass( 've-init-mw-switchPopupWidget' );
};

/* Inheritance */

OO.inheritClass( mw.libs.ve.SwitchPopupWidget, OO.ui.PopupWidget );