User:Magnus Manske/gnd reveal.js

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)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
// <nowiki>
/* TO ACTIVATE, ADD
importScript( 'User:Magnus_Manske/gnd_reveal.js' );
TO YOUR [[Special:MyPage/common.js]] USER SUBPAGE
*/
var gnd_reveal = {
	initialized : false ,

	init : function () {
		let self = this ;
		self.initialized = true ;
		let portletLink = mw.util.addPortletLink( 'p-tb', '#', 'GND reveal','t-wd_gndr');
		$(portletLink).click ( function () {
			self.run() ;
			return false ;
		} ) ;
	} ,

	run : function () {
		let self = this ;
		$('#t-wd_gndr').css({'background-color':'#6094DB'});
		$.getJSON ( "https://wikidata-todo.toolforge.org/gnd.php?callback=?" , {
			action : 'get_qs' ,
			item : mw.config.get('wgTitle')
		} , function ( d ) {
			$('#t-wd_gndr').css({'background-color':''});
			if ( d.status != 'OK' ) {
				alert(d.status);
				return;
			}
			let qs = d.qs.join('||').replace(/\t/g,'|');
			if ( qs!='' ) {
				let url = 'https://quickstatements.toolforge.org/#/v1='+encodeURIComponent(qs);
				window.open(url, '_blank');
			} else {
				$('#t-wd_gndr').css({'text-decoration':'line-through'});
			}
		} ) ;
	}

	
} ;

function try_gnd_reveal() {
	if ( gnd_reveal.initialized ) return ;
	if ( mw.config.get('wgNamespaceNumber') != 0 ) return ;
	if ( mw.config.get('wgAction') != 'view' ) return ;
	if ( $('a[href="/wiki/Property:P227"]').length == 0 ) return ; // No GND

	mw.loader.using( [ 'jquery.ui', 'user.options' ] ).then( function () {
		gnd_reveal.init () ;
	} ) ;
}

$( function(){try_gnd_reveal();} ) ;
// </nowiki>