Utilisateur:Durifon/inline.js
Apparence
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) ;
Firefox (sur GNU/Linux) / Chrome / Internet Explorer / Opera : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5./**
* 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. Mis à jour par Durifon
* Date de dernière révision : 21 novembre 2016
*
* A implémenter: Suppression de contenu sélectionné
* Insertion automatique de la date dans les modèles le prévoyant
*
*/
// Pour utiliser Inline, mettez importScript('Utilisateur:Durifon/inline.js'); dans [[Spécial:Ma_page/common.js]]
if(mw.config.get('wgAction') === 'view' && mw.config.get('wgNamespaceNumber') > -1 /* Todo : pages non modifiables */) {
$(function($) {
var inlineSelected;
var inlineIsWorking = false;
var $document = $(document);
var $inlineGadgetMenu;
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:Durifon/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:Durifon/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('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 = $('#inlineGadgetMenu');
$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|', '}}');
inlineAdd('Actualiser', '{{Passage à actualiser|', '}}');
inlineAdd('Lien Interne', '[[', ']]');
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);
});
}