User:Jeblad/external-articles-dev-v0.2/script.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.
var marker = 'external-article';
var agent = 'Gadget/ExternalArticle (0.2)';
var entity = null;

var domains = {
	snl: {
		encyclopedia: 'Store norske leksikon',
		description: 'Oppslagsverk av allmenn karakter',
		url: 'https://snl.no/',
		autocheck: true,
		property: 'P4342'
	},
	nbl: {
		encyclopedia: 'Norsk biografisk leksikon',
		description: 'Oppslagsverk om kjente personer',
		url: 'https://nbl.snl.no/',
		categories: ['Menn','Kvinner'],
		autocheck: true,
		property: 'P5080'
	},
	nkl: {
		encyclopedia: 'Norsk kunstnerleksikon',
		description: 'Oppslagsverk om kunstnere',
		url: 'https://nkl.snl.no/',
		categories: ['Menn','Kvinner'],
		autocheck: true,
		property: 'P5081'
	},
	sml: {
		encyclopedia: 'Store medisinske leksikon',
		description: 'Oppslagsverk om medisin og helse',
		url: 'https://sml.snl.no/',
		autocheck: true,
		property: 'P5082'
	},
	nb: {
		encyclopedia: 'Naturbase',
		description: 'Faktasamling om verneområder',
		url: '',
		autocheck: true,
		property: 'P1732'
	}
};

$( function (){
	if (mw.config.get('wgNamespaceNumber') !== 0)
		return;

	var createId = function( key ) { return 't-'+key+'-search'; };
	
	var order = Object.keys(domains).sort( function(a, b) { return a.encyclopedia < b.encyclopedia } );
	mw.log( marker, order );
	for ( var i=0,l=order.length; i<l; i++ ) {
		var key = order[i];
		var domain = domains[key];
		domain.id = createId( key );
		domain.key = key;
		mw.util.addPortletLink(
			"p-query",
			"#",
			domain.encyclopedia,
			domain.id,
			domain.description,
			null,
			null
		);
		$( '#'+domain.id ).addClass( 'unconnected' );
	}
});