MediaWiki:Gadget-AggregateInterprojectLinks.js

From Wiktionary, the free dictionary
Jump to navigation Jump to search

Note – after saving, you may have to bypass your browser’s cache to see the changes.

  • Mozilla / Firefox / Safari: hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (Command-R on a Macintosh);
  • Konqueror and Chrome: click Reload or press F5;
  • Opera: clear the cache in Tools → Preferences;
  • Internet Explorer: hold Ctrl while clicking Refresh, or press Ctrl-F5.

/*
** Generates a sidebar list of links to other projects from {{projectlinks}}
** <nowiki>
*/
$(function () {
	var spans = $('span.interProject a:first-child').clone();
	if (spans.length === 0) return;

	// sort alphabetically
	function sortbylabel(a, b) {
		// get labels
		a = $(a).text();
		b = $(b).text();
		// return sort order
		if (a < b) return -1;
		if (a > b) return 1;
		return 0;
	}
	
	spans.sort(sortbylabel);
	
	var newLinksWrapper = $('<div>', {
		'class': 'pBody body vector-menu-content',
		'style': 'display:block'
	});
	$(spans).wrap('<li class="mw-list-item">').parent()
		.appendTo($('<ul class="vector-menu-content-list">')).parent()
			.appendTo(newLinksWrapper);
	
	var collapsed = mw.cookie.get("vector-nav-p-projects") == "false";
	var projectBox = $('<div>', {
		addClass: 'vector-menu vector-menu-portal portlet portal ' + (collapsed ? "collapsed" : "expanded"),
		id: 'p-projects'
	})
	.append($('<label id="p-projects-label" aria-label="" class="vector-menu-heading"><span class="vector-menu-heading-label">In other projects</span></label>'))
	.append(newLinksWrapper);
		
	$('#p-tb').after(projectBox);
});
//</nowiki>