User

Difference between revisions of "Nicolas NALLET/bluell.js"

< User:Nicolas NALLET

Line 33: Line 33:
 
} );
 
} );
  
$('.selectors').text(lang)
+
lang = new OO.ui.DropdownWidget();
 +
$('.selectors').text(lang);
 +
 
 +
 
  
 
AudioBox.prototype.display = function() {
 
AudioBox.prototype.display = function() {

Revision as of 09:20, 3 June 2021

/* Fix links to WIkipedia on P19 property*/
$('div#P19 .wb-external-id').attr('href',  $( 'div#P19 .wb-external-id' ).attr('href').replace(/\+/g, "_"));

/*Display a drilldown interface for record*/

new lang = OO.ui.DropdownWidget( {
	label: 'Select a language',
	menu: {
		items: [
			new OO.ui.MenuOptionWidget( {
				data: 'French'
			} ),
			new OO.ui.MenuOptionWidget( {
				data: 'b',
				label: 'Second',
				indicator: 'clear'
			} ),
			new OO.ui.MenuOptionWidget( {
				data: 'c',
				label: 'Third'
			} ),
			new OO.ui.MenuOptionWidget( {
				data: 'c',
				label: 'The fourth option has an overly long label'
			} ),
			new OO.ui.MenuOptionWidget( {
				icon: 'feedback',
				data: 'd',
				label: 'The fifth option has an icon'
			} )
		]
	}
} );

lang = new OO.ui.DropdownWidget();
$('.selectors').text(lang);



AudioBox.prototype.display = function() {
	this.$node.find( '.ab-title' ).text( this.label );
	this.$node.find( '.ab-metadata' ).text( this.lang + ' - ' + this.speaker );
	
	this.audioNode.src = this.media;
	this.$node.find( '.ab-playbutton' ).click( this.audioNode.play.bind( this.audioNode ) );
}


function createAudioBoxes( data ) {
	if ( data.query === undefined || data.query.rwrecords === undefined || data.query.rwrecords.length < 2 ) {
		displayError( 'nodata' );
		return;
	}

	ab1 = new AudioBox( data.query.rwrecords[ 0 ], $( '.audiobox' ).eq( 0 ) );
	ab2 = new AudioBox( data.query.rwrecords[ 1 ], $( '.audiobox' ).eq( 1 ) );
}

function getRecords() {
    var api = new mw.Api();
	api.get( {
        action: 'query',
        format: 'json',
        list: 'rwrecords',
        rwrlimit: '2',
		rwrsort: 'pageid',
		rwrdir: 'descending',
		rwrformat: 'qid'
  } ).then( createAudioBoxes, displayError );
}

function displayError( code, error ) {
	console.warn( code, error );
}


if ( mw.config.get( 'wgPageName' ) === 'User:Nicolas_NALLET' ) {
    mw.loader.using( [ 'mediawiki.api', 'ext.recordWizard.wikibase' ] ).then( getRecords );
}