Aller au contenu

Utilisateur:HariBot/searchreplace.js

Une page de Wikiquote, le recueil des citations libres.

Note : après avoir publié vos modifications, il se peut que vous deviez forcer le rechargement complet du cache de votre navigateur pour voir les changements.

  • Firefox / Safari : maintenez la touche Maj (Shift) en cliquant sur le bouton Actualiser ou appuyez sur Ctrl + F5 ou Ctrl + R (⌘ + R sur un Mac).
  • Google Chrome : appuyez sur Ctrl + Maj + R (⌘ + Shift + R sur un Mac).
  •  Edge : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl + F5.
var urlsearch = window.location.search;
if (urlsearch != '') {
    data = urlsearch.substr(1, urlsearch.length - 1);
    parameters = data.split('&');
    urlvariables = new Array();
    for (var i = 0; i < parameters.length; i++) {
        parameter = parameters[i]
        pos = parameter.indexOf('=');
        variable = parameter.substr(0, pos);
        value = decodeURI(parameter.substring(pos + 1, parameter.length));
        while (value.search(/\+/) != -1)
            value = value.replace(/\+/, ' ');
        urlvariables[variable] = value;
    }
}

function Replace(diff) {
    var form = document.forms['tc-searchreplace'];
    var search = form.elements['tc-search'].value;
    var replace = form.elements['tc-replace'].value;
    var form = document.forms['tc-resume'];
    var resume = form.elements[0].value;
    if(search == '' || replace == '') return false;

    form = document.forms['editform'];
    var text = form.elements['wpTextbox1'];
    text.value = text.value.replace(new RegExp(/\[{2}(:)?[Cc]at[ée]gor(y|ie)[ ]?:[ ]?([^\]\|]*)/g), "[[$1Catégorie:"+"{{"+"subst:ucfirst:$3"+"}}");
    text.value = text.value.replace(new RegExp(search, "g"), replace);
//  form.elements['wpSummary'].value += ' ' + resume + ' s/'+search+'/'+replace+'/';
    form.elements['wpSummary'].value = resume + ' s/'+search+'/'+replace+'/';
    if (diff) {
        form.elements['wpDiff'].click();
    } else {
        form.elements['wpSave'].click();
    }
    return false;
}

function SaveCookie(name, value) {
    var expires = new Date();
    expires.setTime(expires.getTime() + 365*24*3600*1000);
    expires = expires.toGMTString();
    document.cookie = name + '=' + escape(value) + '; expires=' + expires + '; path=/; domain=wikiquote.org;';
}

function GetCookie(name) {
    var cookies = document.cookie;
    if (cookies) {
        var start = cookies.indexOf(name + '=');
        if (start != -1) {
            var end = cookies.indexOf(";", start);
            if (end == -1) end = cookies.length;
            return unescape(cookies.substring(start + name.length + 1, end));
        }
    }
    return '';
}

function SearchPrompt() {
    var search = prompt('Chaîne à remplacer ?');
    if (search) {
        var replace = prompt('À remplacer par ?');
        if (!replace && replace != '') return;
        SaveCookie('TCsearch', search);
        SaveCookie('TCreplace', replace);
    }
}

function SearchReplace() {
//  if (document.title.indexOf('Modification de ') == 0) {
        var toolbar = document.getElementById('toolbar'); 
        if (toolbar) {
        var br = document.createElement('br');
        toolbar.appendChild(br);
        
        var form = document.createElement('form');
        form.setAttribute('action', '');
        form.setAttribute('method', 'get');
        form.setAttribute('enctype', 'text/plain');
        form.setAttribute('id', 'tc-resume');
        form.setAttribute('style', 'display: inline; vertical-align: bottom;');

        var select = document.createElement('select');
        select.setAttribute('onchange', 'SaveCookie(\'TCresume\', this.value)');
        
        var option = document.createElement('option');
        option.value = option.text = 'Orthographe';
        select.appendChild(option);
        
        var option = document.createElement('option');
        option.value = option.text = 'Typographie';
        select.appendChild(option);

        var option = document.createElement('option');
        option.value = option.text = 'Anglicisme';
        select.appendChild(option);

        var option = document.createElement('option');
        option.value = option.text = 'Grammaire';
        select.appendChild(option);

        var option = document.createElement('option');
        option.value = option.text = 'Correction';
        select.appendChild(option);

        var option = document.createElement('option');
        option.value = option.text = 'Ponctuation';
        select.appendChild(option);

        var option = document.createElement('option');
        option.value = option.text = 'Ajout';
        select.appendChild(option);

        var option = document.createElement('option');
        option.value = option.text = 'Suppression';
        select.appendChild(option);

        var option = document.createElement('option');
        option.value = option.text = 'Recatégorisation';
        select.appendChild(option);

        var option = document.createElement('option');
        option.value = option.text = 'Suppression catégorie';
        select.appendChild(option);

        var option = document.createElement('option');
        option.value = option.text = 'Retouche';
        select.appendChild(option);

        var option = document.createElement('option');
        option.value = option.text = 'Lien';
        select.appendChild(option);

        var option = document.createElement('option');
        option.value = option.text = 'Fair use';
        select.appendChild(option);

        var option = document.createElement('option');
        option.value = option.text = 'Métamodèle';
        select.appendChild(option);

        var option = document.createElement('option');
        option.value = option.text = 'Recommandation Commons';
        select.appendChild(option);

        var option = document.createElement('option');
        option.value = option.text = 'Désormais sur Commons';
        select.appendChild(option);

        select.value = GetCookie('TCresume');

        form.appendChild(select);
        toolbar.appendChild(form);

        var form = document.createElement('form');
        form.setAttribute('action', '');
        form.setAttribute('method', 'get');
        form.setAttribute('enctype', 'text/plain');
        form.setAttribute('onsubmit', 'return Replace(1)');
        form.setAttribute('id', 'tc-searchreplace');
        form.setAttribute('style', 'display: inline; vertical-align: middle;');

        var text = document.createTextNode(' s/');
        form.appendChild(text);
        
        var input = document.createElement('input');
        input.setAttribute('type', 'text');
        input.setAttribute('size', '10');
        input.setAttribute('name', 'tc-search');
        input.setAttribute('id', 'tc-search');
        input.setAttribute('value', GetCookie('TCsearch'));
        input.setAttribute('title', 'Chaîne à remplacer ?');
        input.setAttribute('onchange', 'SaveCookie(\'TCsearch\', this.value)');
        form.appendChild(input);

        text = document.createTextNode('/');
        form.appendChild(text);
        
        input = document.createElement('input');
        input.setAttribute('type', 'text');
        input.setAttribute('size', '10');
        input.setAttribute('name', 'tc-replace');
        input.setAttribute('id', 'tc-replace');
        input.setAttribute('value', GetCookie('TCreplace'));
        input.setAttribute('title', 'À remplacer par ?');
        input.setAttribute('onchange', 'SaveCookie(\'TCreplace\', this.value)');
        form.appendChild(input);

        text = document.createTextNode('/ ');
        form.appendChild(text);
        
        input = document.createElement('input');
        input.setAttribute('type', 'image');
        input.setAttribute('src', 'http://upload.wikimedia.org/wikipedia/fr/9/96/Button_trait%C3%A9supprimer.png');
        input.setAttribute('alt', 'Rechercher, remplacer et prévisualiser les changements');
        input.setAttribute('style', 'vertical-align: middle;');
        form.appendChild(input);

        toolbar.appendChild(form);

        var img = document.createElement('img');
        img.setAttribute('src', 'http://upload.wikimedia.org/wikipedia/fr/a/ae/Button_trait%C3%A9conserver.png');
        img.setAttribute('alt', 'Rechercher, remplacer et sauvegarder les changements');
        img.setAttribute('style', 'vertical-align: middle;');
        
        var a = document.createElement('a');
        a.setAttribute('href', 'javascript:Replace(0)'); 
        a.appendChild(img); 

        toolbar.appendChild(a);

        if (urlvariables['searchreplace'] == 'save') Replace(0);
        if (urlvariables['searchreplace'] == 'diff') Replace(1);
    }

 //   if (document.getElementById('ca-nstab-main').getAttribute('class') == "selected") {

        var tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0];
        if (!tabs) return;

        var li = document.createElement('li');
        li.setAttribute('id', 'ca-tc-searchreplace');
        
/*      var font = document.createElement('font');
        font.setAttribute('style', 'color: blue; font-weight: bold; padding-left: 0.5em');
        var text = document.createTextNode('s&r');
        font.appendChild(text);
        li.appendChild(font); */

        var a = document.createElement('a');
        a.setAttribute('href', 'javascript:SearchPrompt()'); 
        a.setAttribute('title', 'Saisir les termes de recherche et de remplacement');
        a.setAttribute('style', 'color: blue; font-weight: bold;');
        text = document.createTextNode('s&r');
        a.appendChild(text);
        li.appendChild(a);
        
        var editlink = document.getElementById('ca-edit').getElementsByTagName('a')[0].getAttribute('href');
        var a = document.createElement('a');
        a.setAttribute('href', editlink + '&searchreplace=diff'); 
        a.setAttribute('title', 'Rechercher, remplacer et prévisualiser les changements');
        a.setAttribute('style', 'color: red; font-weight: bold;');
        text = document.createTextNode('D');
        a.appendChild(text);
        li.appendChild(a);

        a = document.createElement('a');
        a.setAttribute('href', editlink + '&searchreplace=save'); 
        a.setAttribute('title', 'Rechercher, remplacer et sauvegarder les changements');
        a.setAttribute('style', 'color: green; font-weight: bold;');
        text = document.createTextNode('S');
        a.appendChild(text);
        li.appendChild(a);

        var a = document.createElement('a');
        a.setAttribute('href', 'javascript:SearchHighlight()'); 
        a.setAttribute('title', 'Mettre en surbrillance les termes à remplacer');
        a.setAttribute('style', 'color: yellow; font-weight: bold;');
        text = document.createTextNode('H');
        a.appendChild(text);
        li.appendChild(a);

        tabs.insertBefore(li, document.getElementById('ca-history'));
//    }
}

addLoadEvent(SearchReplace);

// <b style="color:black;background-color:#ffff66">layer</b>