MediaWiki:Gadget-NavFrame.js

Définition, traduction, prononciation, anagramme et synonyme sur le dictionnaire libre Wiktionnaire.

Remarque: après avoir sauvegardé, vous devez vider le cache de votre navigateur pour que les changements prennent effet. Mozilla, cliquez sur Actualiser (ou ctrl-r). Internet Explorer / Opera: ctrl-f5. Safari: cmd-r. Konqueror ctrl-r.

/*******************************************************************************
 * === Boîtes déroulantes ===
 * "NavFrame"
*******************************************************************************/
function create_show_hide_toggle(parent) {
	var hide = 'Enrouler ▲';
	var show = 'Dérouler ▼';
	var title_hide = 'Cliquez ici pour enrouler le cadre';
	var title_show = 'Cliquez ici pour dérouler le cadre';
 
	if (typeof NavigationBarShowDefault === "undefined") {
		NavigationBarShowDefault = 1;
	}
 
	if (!parent) parent = $('body');
 
	var head = parent.find('.NavFrame > .NavContent')
		.prev('.NavHead')
		.click(toggle)
		.css('cursor', 'pointer')
		.prop('title', title_hide);
 
	if (!head.length) {
		return;
	}
 
	$('<span>', { 'class': 'NavToggle' })
		.append('[', $('<a>', {
			href: '',
			text: NavigationBarShowDefault ? hide : show,
			click: toggle }), ']')
		.prependTo(head);
 
	if (!NavigationBarShowDefault) {
		head
			.prop('title', title_show)
			.next('.NavContent')
			.css('display', 'none');
	}
	// on cache les "NavFrame collapsed" par défaut
	parent.find('.NavFrame.collapsed > .NavContent')
		.css('display', 'none')
		.prev('.NavHead').prop('title', title_show)
		.find('.NavToggle > a')
		.text(show);
 
	function toggle(e) {
		// Ne pas dérouler/enrouler lors d'un clic sur un lien dans l'en-tête (lien pour modifier l'en-tête
		// des traductions typiquement)
		if (e.target !== this && e.target.nodeName.toUpperCase() === 'A') {
			return;
		}
		e.preventDefault();
		e.stopPropagation();

		var $t = $(this);
		var head = $t.is('.NavHead') ? $t : $t.parents('.NavHead');
		var content = head.next()
			.toggle();

		head.prop('title') == title_show ? head.prop('title', title_hide) : head.prop('title', title_show);
		head.find('.NavToggle > a')
			.text(content.css('display') === 'none' ? show : hide);
	}
}
 
$(function () { create_show_hide_toggle(); });