User:Ricordisamoa/Reasonator.js

From Wikidata
Jump to navigation Jump to search

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
/* <nowiki>
 *
 * Reasonator.js
 * @author [[User:Ricordisamoa]]
 * Provides a link to 'Reasonator' by Magnus Manske
 * https://tools.wmflabs.org/reasonator/
 * for Wikidata elements of people
*/
$( document ).ready( function () {
	mw.hook( 'wikibase.entityPage.entityLoaded' ).add( function ( data ) {
		// only on entities
		if ( data.claims && data.claims.P31 ) {
			$.each( data.claims.P31, function () {
				if (
					this.mainsnak &&
					this.mainsnak.datavalue &&
					this.mainsnak.datavalue.type === 'wikibase-entityid' &&
					this.mainsnak.datavalue.value &&
					this.mainsnak.datavalue.value['numeric-id'] === 5
				) {
					var baseUrl = '//tools.wmflabs.org/reasonator/',
					params = {
						q: mw.config.get( 'wbEntityId' ),
						lang: mw.config.get( 'wgUserLanguage' )
					};
					$( '<a>' )
					.text( 'Reasonator' )
					.css( 'display', 'table-row' )
					.attr( 'href', baseUrl + '?' + $.param( params ) )
					.insertBefore( $( '.wikibase-statements' ).first() );
					return false;
				}
			} );
		}
	} );
} );