Utilisateur:Dr Brains/CopyrightInHistory.js

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.
// <source lang=javascript><pre><nowiki>

mw.loader.using('ext.gadget.getStrDateToday', function () {

if(mw.config.get('wgNamespaceNumber')==2) addOnloadHook(CopyrightInHistory_AddLink);


function CopyrightInHistory_AddLink(){
     var Cactions = document.getElementById('p-cactions');
     if(!Cactions) return;
     var CactionsUl = Cactions.getElementsByTagName('ul')[0];
     var NewLi = document.createElement('li');
     NewLi.innerHTML = '<a href="javascript:CopyrightInHistory_ChooseForm();" title="Rajouter une entrée d\'historique pour créditer les auteurs" >Copyright</a>';
     CactionsUl.appendChild(NewLi);
}

var CopyrightInHistory_Today = getStrDateToday('j/m/a')



var CopyrightInHistory_ChooseForm_Mod = new Array();
var CopyrightInHistory_ChooseForm_Text = new Array();
var CopyrightInHistory_ChooseForm_Params = new Array();
var CopyrightInHistory_ChooseForm_Labels = new Array();


CopyrightInHistory_ChooseForm_Mod.push("{{Traduit de}}");
CopyrightInHistory_ChooseForm_Text.push("traduction");
   var CopyrightInHistory_ChooseForm_Params_1 = new Array();
   var CopyrightInHistory_ChooseForm_Labels_1 = new Array();
   CopyrightInHistory_ChooseForm_Params_1.push('en');
   CopyrightInHistory_ChooseForm_Labels_1.push('langue');
   CopyrightInHistory_ChooseForm_Params_1.push(mw.config.get('wgPageName').replace(/_/g," "));
   CopyrightInHistory_ChooseForm_Labels_1.push('page source');
   CopyrightInHistory_ChooseForm_Params_1.push(CopyrightInHistory_Today);
   CopyrightInHistory_ChooseForm_Labels_1.push('date de copie');
   CopyrightInHistory_ChooseForm_Params_1.push('');
   CopyrightInHistory_ChooseForm_Labels_1.push('N° oldid');
CopyrightInHistory_ChooseForm_Params.push(CopyrightInHistory_ChooseForm_Params_1);
CopyrightInHistory_ChooseForm_Labels.push(CopyrightInHistory_ChooseForm_Labels_1);


CopyrightInHistory_ChooseForm_Mod.push("{{Auteurs crédités après copie}}");
CopyrightInHistory_ChooseForm_Text.push("copie brute");
   var CopyrightInHistory_ChooseForm_Params_2 = new Array();
   var CopyrightInHistory_ChooseForm_Labels_2 = new Array();
   CopyrightInHistory_ChooseForm_Params_2.push(mw.config.get('wgPageName').replace(/_/g," "));
   CopyrightInHistory_ChooseForm_Labels_2.push('page source');
   CopyrightInHistory_ChooseForm_Params_2.push(CopyrightInHistory_Today);
   CopyrightInHistory_ChooseForm_Labels_2.push('date de copie');
   CopyrightInHistory_ChooseForm_Params_2.push('');
   CopyrightInHistory_ChooseForm_Labels_2.push('N° oldid');
CopyrightInHistory_ChooseForm_Params.push(CopyrightInHistory_ChooseForm_Params_2);
CopyrightInHistory_ChooseForm_Labels.push(CopyrightInHistory_ChooseForm_Labels_2);

CopyrightInHistory_ChooseForm_Mod.push("{{auteurs crédités après fusion}}");
CopyrightInHistory_ChooseForm_Text.push("fusion dans le présent article");
   var CopyrightInHistory_ChooseForm_Params_3 = new Array();
   var CopyrightInHistory_ChooseForm_Labels_3 = new Array();
   CopyrightInHistory_ChooseForm_Params_3.push(mw.config.get('wgPageName').replace(/_/g," "));
   CopyrightInHistory_ChooseForm_Labels_3.push('page source');
CopyrightInHistory_ChooseForm_Params.push(CopyrightInHistory_ChooseForm_Params_3);
CopyrightInHistory_ChooseForm_Labels.push(CopyrightInHistory_ChooseForm_Labels_3);


CopyrightInHistory_ChooseForm_Mod.push("{{auteurs crédités après scission}}");
CopyrightInHistory_ChooseForm_Text.push("scission depuis la page d'origine");
   var CopyrightInHistory_ChooseForm_Params_4 = new Array();
   var CopyrightInHistory_ChooseForm_Labels_4 = new Array();
   CopyrightInHistory_ChooseForm_Params_4.push(mw.config.get('wgPageName').replace(/_/g," "));
   CopyrightInHistory_ChooseForm_Labels_4.push('page source');
   CopyrightInHistory_ChooseForm_Params_4.push(CopyrightInHistory_Today);
   CopyrightInHistory_ChooseForm_Labels_4.push('date de copie');
   CopyrightInHistory_ChooseForm_Params_4.push('');
   CopyrightInHistory_ChooseForm_Labels_4.push('N° oldid');
CopyrightInHistory_ChooseForm_Params.push(CopyrightInHistory_ChooseForm_Params_4);
CopyrightInHistory_ChooseForm_Labels.push(CopyrightInHistory_ChooseForm_Labels_4);

CopyrightInHistory_ChooseForm_Mod.push("{{confirmation OTRS}}"); 
// {{Confirmation OTRS|source=''source''|auteur=''auteur''|otrs=''numéro''|CC-BY-SA=oui|GFDL=oui|tri=''nom de page non accentué''}}
CopyrightInHistory_ChooseForm_Text.push("contenu hors foundation avec autorisation OTRS");
   var CopyrightInHistory_ChooseForm_Params_5 = new Array();
   var CopyrightInHistory_ChooseForm_Labels_5 = new Array();
   CopyrightInHistory_ChooseForm_Params_5.push('source=');
   CopyrightInHistory_ChooseForm_Labels_5.push('page source');
   CopyrightInHistory_ChooseForm_Params_5.push('auteur=');
   CopyrightInHistory_ChooseForm_Labels_5.push('auteur');
   CopyrightInHistory_ChooseForm_Params_5.push('otrs=');
   CopyrightInHistory_ChooseForm_Labels_5.push('N° OTRS');
   CopyrightInHistory_ChooseForm_Params_5.push('GFLD=oui');
   CopyrightInHistory_ChooseForm_Labels_5.push('Autorisation GFLD');
   CopyrightInHistory_ChooseForm_Params_5.push('CC-BY-SA=oui');
   CopyrightInHistory_ChooseForm_Labels_5.push('Autorisation CC-BY-SA');
   CopyrightInHistory_ChooseForm_Params_5.push('tri=' + CopyrightInHistory_Noaccent(mw.config.get('wgTitle')));
   CopyrightInHistory_ChooseForm_Labels_5.push('Clef de tri');
CopyrightInHistory_ChooseForm_Params.push(CopyrightInHistory_ChooseForm_Params_5);
CopyrightInHistory_ChooseForm_Labels.push(CopyrightInHistory_ChooseForm_Labels_5);

CopyrightInHistory_ChooseForm_Mod.push("{{CC-BY-SA hors Foundation}}");
CopyrightInHistory_ChooseForm_Text.push("contenu hors foundation sous licence CC-BY-SA");
   var CopyrightInHistory_ChooseForm_Params_6 = new Array();
   var CopyrightInHistory_ChooseForm_Labels_6 = new Array();
   CopyrightInHistory_ChooseForm_Params_6.push('source=');
   CopyrightInHistory_ChooseForm_Labels_6.push('page source');
   CopyrightInHistory_ChooseForm_Params_6.push('auteur=');
   CopyrightInHistory_ChooseForm_Labels_6.push('auteur');
CopyrightInHistory_ChooseForm_Params.push(CopyrightInHistory_ChooseForm_Params_6);
CopyrightInHistory_ChooseForm_Labels.push(CopyrightInHistory_ChooseForm_Labels_6);

function CopyrightInHistory_Noaccent(text){
      text=text.replace(/Â/g,"A");
      text=text.replace(/â/g,"a");
      text=text.replace(/É/g,"E");
      text=text.replace(/é/g,"e");
      text=text.replace(/è/g,"e");
      text=text.replace(/ê/g,"e");
      text=text.replace(/ë/g,"e");
      text=text.replace(/Î/g,"I");
      text=text.replace(/î/g,"i");
      text=text.replace(/ï/g,"i");
      text=text.replace(/ô/g,"o");
      text=text.replace(/ç/g,"c");
      text=text.replace(/_/g," ");
      return text;
}


window.CopyrightInHistory_ChooseForm = function(){
     var Content = document.getElementById('bodyContent');               // monobook, myskin, chick, simple, vector
     if(!Content) Content = document.getElementById('article');          // cologneblue, nostalgia, standard
     if(!Content) Content = document.getElementById('mw_contentholder'); // modern
     if(!Content) return;

     var OldForm = document.getElementById('CopyrightInHistory_ChooseForm');
     if(OldForm) return;

     var FormDiv = document.createElement('div');
     FormDiv.id = 'CopyrightInHistory_ChooseForm';
     var FormContent = '<select id="ChooseForm_Select" onchange="CopyrightInHistory_GetParams()" >';
     FormContent += '<option size="60" '
                  + 'disabled="disabled" selected="selected" '
                  + 'value="Sélectionner le type de crédit" >Sélectionner le type de crédit</option>';
     for(var a=0;a<CopyrightInHistory_ChooseForm_Mod.length;a++){
          FormContent += '<option size="60" '
                       + 'title="'+CopyrightInHistory_ChooseForm_Text[a]+'" '
                       + 'value="'+CopyrightInHistory_ChooseForm_Mod[a]+'" >'
                       + CopyrightInHistory_ChooseForm_Mod[a]+'</option>';
     }
     FormContent += '</select>';
     FormDiv.innerHTML = FormContent;
     Content.parentNode.insertBefore(FormDiv, Content);
     

};

var CopyrightInHistory_Modele = -1;

function CopyrightInHistory_GetParams(){
     var Select = document.getElementById('ChooseForm_Select');
     if(!Select) return;
     var Options = Select.getElementsByTagName('option');
     for(var a=1;a<Options.length;a++){
          if(Options[a].selected){
               CopyrightInHistory_Modele = (a-1);               
          }
     }
     CopyrightInHistory_CreateForm();
}

function CopyrightInHistory_CreateForm(){
     var Content = document.getElementById('bodyContent');               // monobook, myskin, chick, simple, vector
     if(!Content) Content = document.getElementById('article');          // cologneblue, nostalgia, standard
     if(!Content) Content = document.getElementById('mw_contentholder'); // modern
     if(!Content) return;

     var OldForm = document.getElementById('CopyrightInHistory_Form'); 
     if(OldForm) OldForm.parentNode.removeChild(OldForm);

     var FormDiv = document.createElement('div');
     FormDiv.id = 'CopyrightInHistory_Form';
     var Modele = CopyrightInHistory_ChooseForm_Mod[CopyrightInHistory_Modele];
     var Texte = CopyrightInHistory_ChooseForm_Text[CopyrightInHistory_Modele];
     var Params = CopyrightInHistory_ChooseForm_Params[CopyrightInHistory_Modele];
     var Labels = CopyrightInHistory_ChooseForm_Labels[CopyrightInHistory_Modele];
     var FormContent = '<p><b>Informations de copyright : Modèle '+Modele+' ('+Texte+')</b></p>';
     for(var a=0;a<Params.length;a++){
          var Param = Params[a];
          var Label = Labels[a];
          FormContent += '<input type="text" id="Param_'+a+'"  value="'+Param+'" size="60" ></input>'
                       + '&nbsp;<label for="Param_'+a+'" >'+Label+'</label>'
                       + '<br/>';
     }

     FormContent += '<input type="button" '
                  + 'onclick="CopyrightInHistory_CheckForm();" '
                  + 'onselect="CopyrightInHistory_CheckForm();" '
                  + 'value="Valider" ></input>';

     FormContent += '<input type="button" '
                  + 'onclick="CopyrightInHistory_CancelForm();" '
                  + 'onselect="CopyrightInHistory_CancelForm();" '
                  + 'value="Annuler" ></input>';

     FormDiv.innerHTML = FormContent;
     Content.parentNode.insertBefore(FormDiv, Content);
}

function CopyrightInHistory_CancelForm(){
     var OldChooseForm = document.getElementById('CopyrightInHistory_ChooseForm'); 
     if(OldChooseForm) OldChooseForm.parentNode.removeChild(OldChooseForm);
     var OldForm = document.getElementById('CopyrightInHistory_Form'); 
     if(OldForm) OldForm.parentNode.removeChild(OldForm);
}


var CopyrightInHistory_NewTemplate = '';

function CopyrightInHistory_CheckForm(){
     var Form = document.getElementById('CopyrightInHistory_Form'); 
     var Inputs = Form.getElementsByTagName('input');

     var NewParams = '';
     for(var b=0;b<Inputs.length;b++){
          if(Inputs[b].type == "text"){
               var Value = Inputs[b].value;
               if(Value!=''){
                    NewParams += '|' + Value;
               }
          }
     }
     CopyrightInHistory_NewTemplate = CopyrightInHistory_ChooseForm_Mod[CopyrightInHistory_Modele];
     CopyrightInHistory_NewTemplate = CopyrightInHistory_NewTemplate.split('}}').join(NewParams) + '}}';
     //alert(CopyrightInHistory_NewTemplate);
     CopyrightInHistory_EditOne();
}

var CopyrightInHistory_ContenuPage = '';

function CopyrightInHistory_EditOne(){
 
        var AdresseEdition = mw.config.get('wgServer') + mw.config.get('wgScript') + '?title=' + mw.config.get('wgPageName').replace(/&/g, "%26") + '&action=edit';
 
        var RequeteEdition = sajax_init_object(); 
        RequeteEdition.open("GET", AdresseEdition, true);
        RequeteEdition.onreadystatechange = function() {
                if( !(RequeteEdition.readyState == 4 && RequeteEdition.status == 200) )  return; 
                while(document.body.firstChild){document.body.removeChild(document.body.firstChild);}
                document.body.innerHTML = RequeteEdition.responseText;  
 
                CopyrightInHistory_ContenuPage = document.getElementById("wpTextbox1").value; 
                var AncienResume = document.getElementById("wpSummary").value; 
 
                if(CopyrightInHistory_NewTemplate.indexOf('{{Traduit de|')!=-1){
                        var ThisTemplate = CopyrightInHistory_NewTemplate.split('{{Traduit de|').join('{{Traduction/Référence|');
                }else{
                        var ThisTemplate = CopyrightInHistory_NewTemplate;
                }

                //////////////////////////////////////////////
                // OPERATIONS DE TRANSFORMATIONS DU CONTENU //
 
                var TexteFinal = ThisTemplate ;  
 
                var SommaireFinal = 'Auteurs crédités : '+ThisTemplate 
                                  + ' ; voir [['+mw.config.get('wgFormattedNamespaces')[(mw.config.get('wgNamespaceNumber')+1)]+':'+mw.config.get('wgTitle')+'/Droit d\'auteur#Crédits d\'auteurs]]';   // Résumé de modification
                ////////////////////////////////////////////// 
 
                document.getElementById ("wpTextbox1").value = TexteFinal ;  // Copie du résultat
                document.getElementById("wpSummary").value = SommaireFinal ; // Copie du résumé de modif
                var AdressePublication = document.getElementById("editform").action;
                var boundary = '--------123xyz';
                var data = '';
                data += '--' + boundary + '\nContent-Disposition: form-data; name="wpTextbox1"\n\n' + TexteFinal + '\n'
                data += '--' + boundary + '\nContent-Disposition: form-data; name="wpSection"\n\n' + document.editform.wpSection.value + '\n'
                data += '--' + boundary + '\nContent-Disposition: form-data; name="wpSummary"\n\n' + SommaireFinal + '\n'
                data += '--' + boundary + '\nContent-Disposition: form-data; name="wpStarttime"\n\n' + document.editform.wpStarttime.value + '\n'
                data += '--' + boundary + '\nContent-Disposition: form-data; name="wpEdittime"\n\n' + document.editform.wpEdittime.value + '\n'
                data += '--' + boundary + '\nContent-Disposition: form-data; name="wpEditToken"\n\n' + document.editform.wpEditToken.value + '\n'
 

                var RequetePublication = sajax_init_object();
                RequetePublication.open('POST', AdressePublication, true);
                RequetePublication.setRequestHeader('Content-Type', 'multipart/form-data; boundary='+boundary);
                RequetePublication.onreadystatechange = function(){
                    if (RequetePublication.readyState == 4){
                         while(document.body.firstChild){document.body.removeChild(document.body.firstChild);}
                         document.body.innerHTML = RequetePublication.responseText; 
                         CopyrightInHistory_EditTwo();
                    }
                }
                RequetePublication.send(data + '--' + boundary);
        }
        RequeteEdition.send(null);
}

function CopyrightInHistory_EditTwo(){
 
        var AdresseEdition = mw.config.get('wgServer') + mw.config.get('wgScript') + '?title=' + mw.config.get('wgPageName').replace(/&/g, "%26") + '&action=edit';
 
        var RequeteEdition = sajax_init_object(); 
        RequeteEdition.open("GET", AdresseEdition, true);
        RequeteEdition.onreadystatechange = function() {
                if( !(RequeteEdition.readyState == 4 && RequeteEdition.status == 200) )  return; 
                while(document.body.firstChild){document.body.removeChild(document.body.firstChild);}
                document.body.innerHTML = RequeteEdition.responseText;  
 
                //////////////////////////////////////////////
                // OPERATIONS DE TRANSFORMATIONS DU CONTENU //
 
                var TexteFinal = CopyrightInHistory_ContenuPage ;  
 
                var SommaireFinal = 'Retour version précédente après crédits des auteurs';   
                ////////////////////////////////////////////// 
 
                document.getElementById ("wpTextbox1").value = TexteFinal ;  // Copie du résultat
                document.getElementById("wpSummary").value = SommaireFinal ; // Copie du résumé de modif
                var AdressePublication = document.getElementById("editform").action;
                var boundary = '--------123xyz';
                var data = '';
                data += '--' + boundary + '\nContent-Disposition: form-data; name="wpTextbox1"\n\n' + TexteFinal + '\n'
                data += '--' + boundary + '\nContent-Disposition: form-data; name="wpSection"\n\n' + document.editform.wpSection.value + '\n'
                data += '--' + boundary + '\nContent-Disposition: form-data; name="wpSummary"\n\n' + SommaireFinal + '\n'
                data += '--' + boundary + '\nContent-Disposition: form-data; name="wpStarttime"\n\n' + document.editform.wpStarttime.value + '\n'
                data += '--' + boundary + '\nContent-Disposition: form-data; name="wpEdittime"\n\n' + document.editform.wpEdittime.value + '\n'
                data += '--' + boundary + '\nContent-Disposition: form-data; name="wpEditToken"\n\n' + document.editform.wpEditToken.value + '\n'
 

                var RequetePublication = sajax_init_object();
                RequetePublication.open('POST', AdressePublication, true);
                RequetePublication.setRequestHeader('Content-Type', 'multipart/form-data; boundary='+boundary);
                RequetePublication.onreadystatechange = function(){
                    if (RequetePublication.readyState == 4){
                         while(document.body.firstChild){document.body.removeChild(document.body.firstChild);}
                         document.body.innerHTML = RequetePublication.responseText; 
                         CopyrightInHistory_EditThree();
                    }
                }
                RequetePublication.send(data + '--' + boundary);
        }
        RequeteEdition.send(null);
}

function CopyrightInHistory_EditThree(){
        var AdresseEdition = mw.config.get('wgServer') + mw.config.get('wgScript') + '?title=' + mw.config.get('wgFormattedNamespaces')[(mw.config.get('wgNamespaceNumber')+1)] + ':' + mw.config.get('wgTitle').replace(/&/g, "%26") + "/Droit d'auteur&action=edit&section=new";
 
        var RequeteEdition = sajax_init_object(); 
        RequeteEdition.open("GET", AdresseEdition, true);
        RequeteEdition.onreadystatechange = function() {
                if( !(RequeteEdition.readyState == 4 && RequeteEdition.status == 200) )  return; 
                while(document.body.firstChild){document.body.removeChild(document.body.firstChild);}
                document.body.innerHTML = RequeteEdition.responseText;   
                var TexteFinal = '== Crédits d\'auteurs ==\n'
                                  + CopyrightInHistory_NewTemplate + '\n'
                                  + '~~' + '~~\n' ;  
 
                var SommaireFinal = '';   
                ////////////////////////////////////////////// 
        
                document.getElementById ("wpTextbox1").value = TexteFinal ;  // Copie du résultat
                document.getElementById("wpSummary").value = SommaireFinal ; // Copie du résumé de modif

                var AdressePublication = document.getElementById("editform").action;
                var boundary = '--------123xyz';
                var data = '';
                data += '--' + boundary + '\nContent-Disposition: form-data; name="wpTextbox1"\n\n' + TexteFinal + '\n'
                data += '--' + boundary + '\nContent-Disposition: form-data; name="wpSection"\n\n' + document.editform.wpSection.value + '\n'
                data += '--' + boundary + '\nContent-Disposition: form-data; name="wpSummary"\n\n' + SommaireFinal + '\n'
                data += '--' + boundary + '\nContent-Disposition: form-data; name="wpStarttime"\n\n' + document.editform.wpStarttime.value + '\n'
                data += '--' + boundary + '\nContent-Disposition: form-data; name="wpEdittime"\n\n' + document.editform.wpEdittime.value + '\n'
                data += '--' + boundary + '\nContent-Disposition: form-data; name="wpEditToken"\n\n' + document.editform.wpEditToken.value + '\n'

                var RequetePublication = sajax_init_object();
                RequetePublication.open('POST', AdressePublication, true);
                RequetePublication.setRequestHeader('Content-Type', 'multipart/form-data; boundary='+boundary);
                RequetePublication.onreadystatechange = function(){
                        if (RequetePublication.readyState == 4){
                                while(document.body.firstChild){document.body.removeChild(document.body.firstChild);}
                                document.body.innerHTML = RequetePublication.responseText; 
                                CopyrightInHistory_EditFinal();
                        }
                }
                RequetePublication.send(data + '--' + boundary);
        }
        RequeteEdition.send(null);
}

function CopyrightInHistory_EditFinal(){

        if(CopyrightInHistory_NewTemplate.indexOf('{{Traduit de|')!=-1){
                var ThisTemplate = CopyrightInHistory_NewTemplate.split('{{Traduit de|').join('{{Traduction/Référence|');
        }else{
                var ThisTemplate = CopyrightInHistory_NewTemplate;
        }

        var AdresseEdition = mw.config.get('wgServer') + mw.config.get('wgScript') + '?title=' + mw.config.get('wgPageName').replace(/&/g, "%26") + '&action=edit';
        var RequeteEdition = sajax_init_object(); 
        RequeteEdition.open("GET", AdresseEdition, true);
        RequeteEdition.onreadystatechange = function() {
                if( !(RequeteEdition.readyState == 4 && RequeteEdition.status == 200) )  return; 
                while(document.body.firstChild){document.body.removeChild(document.body.firstChild);}
                document.body.innerHTML = RequeteEdition.responseText;  
 
                var EditForm = document.getElementById("editform"); 
                var NewDiv = document.createElement('div');
                NewDiv.innerHTML = '<div style="border:3 px dashed red;margin:1em;padding:1em;">'
                                 + '<p><b><i>Vous pouvez à présent copier-coller le modèle ci-dessous dans la section « Références » </i></b></p><br/>'
                                 + '<p><tt><b><big>'+ ThisTemplate+'</big></b></tt></p><br/>'
                                 + '<p><b><i>ou bien <a href="javascript:window.location.reload();" >revenir à l\'article</a></i></b></p></div>';  
                EditForm.insertBefore(NewDiv, EditForm.firstChild);
        }
        RequeteEdition.send(null);
}


});

// </nowiki></pre></source>