Utilisateur:Marin M./inline.js

Une page de Wikipédia, l'encyclopédie libre.
Note : après avoir enregistré la page, vous devrez forcer le rechargement complet du cache de votre navigateur pour voir les changements.

Mozilla / Firefox / Konqueror / Safari : maintenez la touche Majuscule (Shift) en cliquant sur le bouton Actualiser (Reload) ou pressez Maj-Ctrl-R (Cmd-R sur Apple Mac) ;

Chrome / Internet Explorer / Opera : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5.
/* <nowiki> */

/**
 * Inline
 *
 * Quand vous sélectionnez du texte, Inline ajoute des liens dans la colonne de gauche permettant d'y appliquer des modèles du genre de
   {{Référence nécessaire}} ou de {{Passage non neutre}}. Compatible avec la dernière version de Wikipédia (Vector) et l'ancienne (Monobook).
 *
 * Auteur : Marin M.
 * Date de dernière révision : 31 janvier 2011
 */

// Pour utiliser Inline, mettez importScript('Utilisateur:Marin_M./inline.js'); dans [[Spécial:Ma_page/common.js]]

var inlineSelected;
var inlineIsWorking = false;
 
function inlineAdd(name, before, after) {
	$('#inlineGadgetMenu').append($('<li></li>').append($('<a></a>').html(name).css('cursor', 'pointer')).mousedown(function() {
		if(confirm('Modifier la page ?')) {
		inlineIsWorking = true;
		$('#inlineGadgetMenu').html('Chargement en cours...');
		$.ajax({url: mw.config.get('wgScriptPath') + '/api.php', type: 'POST', data: 'action=query&prop=info&intoken=edit&format=json&titles=World_of_Goo', success: function(ni) {
			for(var i in ni.query.pages) {
				var token = ni.query.pages[i].edittoken.replace('+\\', '%2B%5C');
				$.ajax({url: mw.config.get('wgScript') + '?action=raw&title=' + encodeURIComponent(mw.config.get('wgPageName')), type: 'GET', cache: false, success: function(content) {
				var testDebut = inlineSelected.length;
				while(content.indexOf(inlineSelected.substring(0, testDebut)) == -1) {
					testDebut--;
				}
				
				if(testDebut != inlineSelected.length) {
					var testFin = testDebut;
					while(content.substring(content.indexOf(inlineSelected.substring(0, testDebut))).indexOf(inlineSelected.substring(testFin)) == -1) {
						testFin++;
					}
					var checker = new RegExp(inlineSelected.substring(0, testDebut).replace(/([\\\.\+\*\?\[\^\]\$\(\)\{\}\=\!\<\>\|\:])/g, "\\$1") + '.*?' + inlineSelected.substring(testFin).replace(/([\\\.\+\*\?\[\^\]\$\(\)\{\}\=\!\<\>\|\:])/g, "\\$1")).exec(content);
					if(checker == null) {
						alert('Beuh... Inline ne parvient pas à trouver le bout de texte sélectionné dans l\'article.');
						window.location.reload();
					} else {
						if(content.substring(content.indexOf(inlineSelected.substring(testFin)), content.indexOf(inlineSelected.substring(testFin)) + inlineSelected.substring(testFin).length + 2) == inlineSelected.substring(testFin) + ']]') {
							checker[0] += ']]';
						}
						content = content.replace(checker[0], before + checker[0] + after);
					}
				} else {
					content = content.replace(inlineSelected, before + inlineSelected + after);
				}
				content = encodeURIComponent(content);
					if(name == 'Gras' || name == 'Italique') {
						$.ajax({url: mw.config.get('wgScriptPath') + '/api.php', type: 'POST', data: 'action=edit&text=' + content + '&summary=[[Utilisateur:Marin_M./inline.js|Inline]] - Mise en forme&token=' + token + '&minor=true&title=' + encodeURIComponent(mw.config.get('wgPageName')), success: function() {
							window.location.reload();
						}});
					} else {
						$.ajax({url: mw.config.get('wgScriptPath') + '/api.php', type: 'POST', data: 'action=edit&text=' + content + '&summary=[[Utilisateur:Marin_M./inline.js|Inline]] - Ajout de ' + before.replace('|', '') + '}}&token=' + token + '&minor=true&title=' + encodeURIComponent(mw.config.get('wgPageName')), success: function() {
							window.location.reload();
						}});
					}
				}});
			}
		}});
		}
	}));
}

function inlineAddSpacer() {
	$('#inlineGadgetMenu').append($('<li></li>').html(''));
}
 
if(mw.config.get('wgAction') === 'view' && mw.config.get('wgNamespaceNumber') > -1 /* Todo : pages non modifiables */) {
	if(mw.config.get('skin') == 'vector') {
		var inlineBg = '#f6f6f6';
		$('#mw-panel').append($('<div></div>').addClass('portal').addClass('persistent').css('background', inlineBg).append($('<div></div>').addClass('body').append($('<ul></ul>', {id: 'inlineGadgetMenu'}))));
		var inlineTop = 170;
		var inlineLeft = 0;
		var inlineWidth = 150;
		var inlineZero = 0;
	} else {
		var inlineBg = '#f9f9f9';
		$('#column-one').append($('<div></div>').addClass('portal').css('background', inlineBg).append($('<div></div>').addClass('pBody').append($('<ul></ul>', {id: 'inlineGadgetMenu'}))));
		var inlineTop = 174;
		var inlineLeft = -18;
		var inlineWidth = 145;
		var inlineZero = -4;
	}
	$('#inlineGadgetMenu').css('z-index', '99999').css('display', 'none').css('position', 'fixed').css('background', inlineBg).css('left', inlineLeft).css('width', inlineWidth + 'px').css('padding', '5px');
	$(document).scroll(function() {
		if($(document).scrollTop() < inlineTop) {
			$('#inlineGadgetMenu').css('top', ((inlineTop - $(document).scrollTop()) + inlineLeft) + 'px');
			$('#inlineGadgetMenu').css('height', (($(document).height() - 10) - $(document).scrollTop()) + 'px');
		} else {
			$('#inlineGadgetMenu').css('top', inlineZero + 'px');
			$('#inlineGadgetMenu').css('height', $(document).height() - 10 + 'px');
		}
	});
	$(document).scroll();
	inlineAdd('Référence nécessaire', '{{Référence nécessaire|', '}}');
	inlineAdd('Référence souhaitée', '{{Référence souhaitée|', '}}');
	inlineAdd('Référence insuffisante', '{{Référence insuffisante|', '}}');
	inlineAdd('Référence incomplète', '{{Référence incomplète|', '}}');
	inlineAdd('Référence à confirmer', '{{Référence à confirmer|', '}}');
	inlineAdd('Précision nécessaire', '{{Précision nécessaire|', '}}');
	inlineAddSpacer();
	inlineAdd('Passage non neutre', '{{Passage non neutre|', '}}');
	inlineAdd('Passage inédit', '{{Passage inédit|', '}}');
	inlineAdd('Passage évasif', '{{Passage évasif|', '}}');
	inlineAdd('Qui', '{{Qui|', '}}');
	inlineAdd('Quoi', '{{Quoi|', '}}');
	inlineAdd('Quand', '{{Quand|', '}}');
	inlineAdd('Où', '{{Où|', '}}');
	inlineAdd('Par qui', '{{Par qui|', '}}');
	inlineAdd('Pas clair', '{{Pas clair|', '}}');
	inlineAdd('Pourquoi', '{{Pourquoi|', '}}');
	inlineAdd('Combien', '{{Combien|', '}}');
	inlineAdd('Laquelle', '{{Laquelle|', '}}');
	inlineAdd('Lequel', '{{Lequel|', '}}');
	inlineAdd('Lesquels', '{{Lesquels|', '}}');
	inlineAdd('Lesquelles', '{{Lesquelles|', '}}');
	inlineAdd('Contradiction', '{{Contrad|', '}}');
	inlineAdd('Pertinence', '{{Pertinence détail|', '}}');
	inlineAddSpacer();
	inlineAdd('Gras', '\'\'\'', '\'\'\'');
	inlineAdd('Italique', '\'\'', '\'\'');
	setInterval(function() {
		if(window.getSelection().toString() != '') {
			inlineSelected = window.getSelection().toString().replace('    ', '');
			$('#inlineGadgetMenu').css('display', 'block');
		} else {
			if(!inlineIsWorking) {
				$('#inlineGadgetMenu').css('display', 'none');
			}
		}
	}, 250);
}

/* </nowiki> */