Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

MediaWiki:Gadget-lyrics-options.js: Difference between revisions

MediaWiki interface page
Content added Content deleted
(added selector logic)
(set selected to default to true, fixed not a function bug)
Line 5: Line 5:
var selector = new OO.ui.ButtonSelectWidget( {
var selector = new OO.ui.ButtonSelectWidget( {
items: [
items: [
new OO.ui.ButtonOptionWidget( { data: 'jp', label: 'Japanese' } ),
new OO.ui.ButtonOptionWidget( { data: 'jp', label: 'Japanese', selected: true } ),
new OO.ui.ButtonOptionWidget( { data: 'rm', label: 'Romaji '} ),
new OO.ui.ButtonOptionWidget( { data: 'rm', label: 'Romaji', selected: true } ),
new OO.ui.ButtonOptionWidget( { data: 'en', label: 'English' } )
new OO.ui.ButtonOptionWidget( { data: 'en', label: 'English', selected: true } )
],
],
align: 'left',
align: 'left',
Line 14: Line 14:
function langSelect( item, selected ) {
function langSelect( item, selected ) {
var cssSelector = '#lyrics-' + id + ' .lyric';
var cssSelector = '#lyrics-' + id + ' .lyric';
var changedLang = item.getData();
var changedLang = item.getData();
Line 43: Line 43:
} );
} );
}
console.log(item, selected);
}
selector.on( 'choose', langSelect );
selector.on( 'choose', langSelect );
selector.on( 'select', langSelect );
return selector;
return selector;
Line 55: Line 53:
$( '.lyrics-options' ).each( function () {
$( '.lyrics-options' ).each( function () {
var id = $( this ).data( 'id' );
var id = $( this ).data( 'id' );
var languages = $( this ).data( 'languages' );
var fieldset = new OO.ui.FieldsetLayout( {
var fieldset = new OO.ui.FieldsetLayout( {
label: 'Dialogue display options'
label: 'Lyrics display options'
} );
} );
var langSelector = makeLanguageSelector( id );
var langSelector = makeLanguageSelector( id );

Revision as of 01:49, 26 July 2022

( function ( $, mw ) {
	'use strict';
	
	function makeLanguageSelector( id ) {
		var selector = new OO.ui.ButtonSelectWidget( {
			items: [
				new OO.ui.ButtonOptionWidget( { data: 'jp', label: 'Japanese', selected: true } ),
				new OO.ui.ButtonOptionWidget( { data: 'rm', label: 'Romaji', selected: true } ),
				new OO.ui.ButtonOptionWidget( { data: 'en', label: 'English', selected: true } )
			],
			align: 'left',
			multiselect: true
		} );
		
		function langSelect( item, selected ) {
			var cssSelector = '#lyrics-' + id + ' .lyric';
			
			var changedLang = item.getData();
			var langSelector = '';
			
			switch( changedLang ) {
				case 'jp':
					langSelector = '.ly-jp';
					break;
				case 'rm':
					langSelector = '.ly-rm';
					break;
				case 'en':
					langSelector = '.ly-en';
					break;
				default:
					return;
			}
			
			$( cssSelector ).each( function() {
				var $ly = $( this ).find( langSelector );
				
				if ( selected ) {
					$ly.show();
				} else {
					$ly.hide();
				}
			} );
			
		}
		
		selector.on( 'choose', langSelect );
		
		return selector;
	}
	
	$( function() {
		$( '.lyrics-options' ).each( function () {
			var id = $( this ).data( 'id' );
			var languages = $( this ).data( 'languages' );
			
			var fieldset = new OO.ui.FieldsetLayout( {
				label: 'Lyrics display options'
			} );
			var langSelector = makeLanguageSelector( id );
			
			fieldset.addItems( [
				new OO.ui.FieldLayout( langSelector, { label: 'Display language', align: 'inline' } )
			] );
			
			$( this ).append( fieldset.$element );
		} );
	} );
	
} )( jQuery, mediaWiki );
Cookies help us deliver our services. By using our services, you agree to our use of cookies.