|
|
(11 intermediate revisions by 2 users not shown) |
Line 1: |
Line 1: |
− | $( function (){
| |
− | var userLanguage = mw.config.get( 'wgUserLanguage' );
| |
− | mw.loader.using( ['oojs', 'oojs-ui'], function () {
| |
| | | |
− | $.getJSON(
| |
− | 'https://lingualibre.org/bigdata/namespace/wdq/sparql',
| |
− | {
| |
− | query: 'SELECT DISTINCT ?user ?userLabel WHERE { ?user prop:P2 entity:Q3 . ?user rdfs:label ?userLabel . FILTER( LANG(?userLabel) = "en" ) } ORDER BY ?userLabel'
| |
− | }
| |
− | ).done( function( users ) {
| |
− | console.log( users );
| |
− | var combobox = new OO.ui.ComboBoxInputWidget( {
| |
− | placeholder: 'Placeholder'
| |
− | menu: {
| |
− |
| |
− | filterFromInput: true,
| |
− | cols: 20,
| |
− | size:30,
| |
− | items: users.results.bindings.map( function( x ) {
| |
− | return new OO.ui.MenuOptionWidget( {
| |
− | data: x.user.value.substr( 31 ),
| |
− | label: x.userLabel.value
| |
− | } );
| |
− | } )
| |
− | }
| |
− | } );
| |
− |
| |
− | $( '#filteruser' ).append(
| |
− | combobox.$element
| |
− | );
| |
− |
| |
− | } );
| |
− |
| |
− | $.getJSON(
| |
− | 'https://lingualibre.org/bigdata/namespace/wdq/sparql',
| |
− | {
| |
− | query: 'SELECT DISTINCT ?gender ?genderLabel WHERE { ?gender prop:P2 entity:Q7 . SERVICE wikibase:label { bd:serviceParam wikibase:language "' + userLanguage + ',fr,en" } } ORDER BY ?gender'
| |
− | }
| |
− | ).done( function( genders ) {
| |
− | console.log( genders );
| |
− | var dropdown = new OO.ui.DropdownWidget( {
| |
− | menu: {
| |
− | items: genders.results.bindings.map( function( x ) {
| |
− | return new OO.ui.MenuOptionWidget( {
| |
− | data: x.gender.value.substr( 31 ),
| |
− | label: x.genderLabel.value
| |
− | } );
| |
− | } )
| |
− | }
| |
− | } );
| |
− |
| |
− | $( '#filtergender' ).append(
| |
− | dropdown.$element
| |
− | );
| |
− |
| |
− | } );
| |
− |
| |
− | $.getJSON(
| |
− | 'https://lingualibre.org/bigdata/namespace/wdq/sparql',
| |
− | {
| |
− | query: 'SELECT DISTINCT ?language ?languageLabel WHERE { ?language prop:P2 entity:Q4 . SERVICE wikibase:label { bd:serviceParam wikibase:language "' + userLanguage + ',fr,en" } } ORDER BY ?languageLabel'
| |
− | }
| |
− | ).done( function( languages ) {
| |
− | console.log( languages );
| |
− | var dropdown = new OO.ui.DropdownWidget( {
| |
− | menu: {
| |
− | items: languages.results.bindings.map( function( x ) {
| |
− | return new OO.ui.MenuOptionWidget( {
| |
− | data: x.language.value.substr( 31 ),
| |
− | label: x.languageLabel.value
| |
− | } );
| |
− | } )
| |
− | }
| |
− | } );
| |
− |
| |
− | $( '#filterlanguage' ).append(
| |
− | dropdown.$element
| |
− | );
| |
− |
| |
− | } );
| |
− |
| |
− | $.getJSON(
| |
− | 'https://lingualibre.org/bigdata/namespace/wdq/sparql',
| |
− | {
| |
− | query: 'SELECT DISTINCT ?proficiency ?proficiencyLabel WHERE { ?proficiency prop:P2 entity:Q5 . SERVICE wikibase:label { bd:serviceParam wikibase:language "' + userLanguage + ',fr,en" } } ORDER BY ?proficiency'
| |
− | }
| |
− | ).done( function( proficiencies ) {
| |
− | console.log( proficiencies );
| |
− | var dropdown = new OO.ui.DropdownWidget( {
| |
− | menu: {
| |
− | items: proficiencies.results.bindings.map( function( x ) {
| |
− | return new OO.ui.MenuOptionWidget( {
| |
− | data: x.proficiency.value.substr( 31 ),
| |
− | label: x.proficiencyLabel.value
| |
− | } );
| |
− | } )
| |
− | }
| |
− | } );
| |
− |
| |
− | $( '#filterlevelofproficiency' ).append(
| |
− | dropdown.$element
| |
− | );
| |
− |
| |
− | } );
| |
− |
| |
− | } );
| |
− |
| |
− | } );
| |
− |
| |
− |
| |
− |
| |
− | /*
| |
− | lang = mw.config.get( 'wgUserLanguage' );
| |
− |
| |
− | AudioBox.prototype.display = function() {
| |
− | this.$node.find( '.ab-title' ).text( "un label" + lang ); //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 );
| |
− | $('.selectors').append(lang.$element);
| |
− | $('.selectors').append(list.$element);
| |
− | }
| |
− | */
| |