//<source lang=javascript>//<pre><nowiki>
function addCopyvioMenuItem () {
mw.loader.load('jquery.ui');
if (mw.config.get('wgNamespaceNumber')==0) {
$('#p-cactions ul').append("<li><a id='copyvio1'>Soupçon de copyvio</a></li>");
$('#p-cactions ul').append("<li><a id='copyvio2'>Copyvio avéré</a></li>");
}
}
function displayForm () {
var comments;
var site;
function displayHeadband1 () {
var bandeau1 = "{{Copie à vérifier}}\n\n";
var contenuPage = $("#Tableau_de_bord #wpTextbox1").text(); // "wpTextbox1" = id de la fenêtre d'edit
var result = bandeau1 + contenuPage;
return result;
}
function displayHeadband2 () {
var bandeau2 = "{{Copie de site | 1=" + site + " }}\n\n";
var contenuPage = $("#Tableau_de_bord #wpTextbox1").text(); // "wpTextbox1" = id de la fenêtre d'edit
var result = bandeau2 + contenuPage;
return result;
}
function commentCopyvio () {
var contenuPage = $("#Tableau_de_bord #wpTextbox1").text();
var signature = "";
if(!(comments.match(/~~~~/))) {
signature = "\n\n~~~~";
}
var result = contenuPage + "\n\n== ] ==\n\n" + comments + signature; // Ajout d'une section dans la sous-page
return result;
}
function indexCopyvio () {
var contenuPage = $("#Tableau_de_bord #wpTextbox1").text();
var article = mw.config.get('wgPageName'); // "wgPageName" = nom de l'article
// Insertion du lien "au milieu" de la page
var part1 = contenuPage.substring(0,(contenuPage.indexOf('<!---------------------------------------------------------------------->'))-1);
var part2 = contenuPage.substring(contenuPage.indexOf('<!---------------------------------------------------------------------->'));
var result = part1 + "\n" + "* ] (])" + part2 + "\n";
return result;
}
var TableauDeBord = document.createElement('div');
TableauDeBord.id = 'Tableau_de_bord';
TableauDeBord.style.opacity = '0';
document.body.appendChild(TableauDeBord);
function autoEdit(Page, convertContent){
/* ///////////////////////////// LANCEMENT REQUETE PAGE A EDITER //////////////////// */
// Adresse de requête
var AdresseEdition = mw.config.get('wgServer') + mw.config.get('wgScript') + '?title=' + decodeURIComponent(Page) + '&action=edit';
// Lancement de la requête
var RequeteEdition = new XMLHttpRequest(); // Requête ajax GET de la page à éditer
RequeteEdition.open("GET", AdresseEdition, false);
RequeteEdition.onreadystatechange = function() {
if( !(RequeteEdition.readyState == 4 && RequeteEdition.status == 200) ) return;
TableauDeBord.innerHTML = RequeteEdition.responseText; // Affichage de la page à éditer
/* ///////////////////////////// FIN REQUETE PAGE A EDITER //////////////////// */
// Modification de la page à éditer
var TexteFinal = convertContent();
var SommaireFinal = 'Test'; // Résumé de modification
// Demande de confirmation
//var SurEtCertain = confirm('Sauvegarder la modification ?');
//if(!SurEtCertain) return;
/* ///////////////////////////// LANCEMENT REQUETE PUBLICATION //////////////////// */
// Adresse de la requête (attribut "action" de l'élément <form> )
var AdressePublication = mw.config.get('wgServer') + $("#Tableau_de_bord #editform").attr('action');
// Création des "paramètres" de la requête
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' + $('#Tableau_de_bord #editform input').attr('value')/*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' + $('#Tableau_de_bord #editform input').attr('value') + '\n';
data += '--' + boundary + '\nContent-Disposition: form-data; name="wpMinoredit"\n\n' + $('#Tableau_de_bord #editform input').attr('value') + '\n';
data += '--' + boundary + '\nContent-Disposition: form-data; name="wpWatchthis"\n\n' + $('#Tableau_de_bord #editform input').attr('value') + '\n';
data += '--' + boundary + '\nContent-Disposition: form-data; name="wpEdittime"\n\n' + $('#Tableau_de_bord #editform input').attr('value') + '\n';
data += '--' + boundary + '\nContent-Disposition: form-data; name="wpEditToken"\n\n' + $('#Tableau_de_bord #editform input').attr('value') + '\n';
// Lancement de la requête
var RequetePublication = new XMLHttpRequest(); // Requête ajax POST de la page à éditer
RequetePublication.open('POST', AdressePublication, false);
RequetePublication.setRequestHeader('Content-Type', 'multipart/form-data; boundary='+boundary);
RequetePublication.onreadystatechange = function(){
if (RequetePublication.readyState == 4){
// Affichage de la page publiée
TableauDeBord.innerHTML = RequetePublication.responseText;
/* ///////////////////////////// FIN REQUETE PUBLICATION //////////////////// */
}
}
RequetePublication.send(data + '--' + boundary);
}
RequeteEdition.send(null);
}
$('#copyvio1').bind('click', function () {
var selection = window.getSelection();
// Texte de la boîte de dialogue
$("<div id='dialog1' title='Signaler un copyvio'>"
+"<br/>Commentaires : <br/><br/><textarea id='details1' rows='10' cols='60' placeholder='Précisez ce que vous soupçonnez être un copyvio et signez \(en langage wiki)'></textarea>"
+"<div/>").appendTo('body');
// Ouverture de la boîte de dialogue
$('#dialog1').dialog(
{ modal: true },
{height:400},
{width:700},
{open: function () {$('#details1').blur();}},//On annule le ciblage de la textarea
{close: function () {$('#dialog1').remove();}},
{buttons:[
{
text: "Signaler le copyvio",
click: function() {
comments = document.getElementById ('details1').value;
var url1 = mw.config.get('wgServer') + mw.config.get('wgScript') + '?title=' + decodeURIComponent(mw.config.get('wgPageName'));
$('#dialog1').html('<p id="p1">Ajout du bandeau "Copie à vérifier"<p/><br/><p id="p2">Création de la sous-page de discussion du copyvio<p/><br/><p id="p3">Indexation du copyvio<p/>');
//Réduire la taille de la fenêtre de dialogue + positionnement au centre
$('#dialog1').dialog({ height: 250 }, {width:400});
$('#dialog1').dialog( "option", "position", 'center' );
$('#dialog1').dialog( "option", "buttons", { "Ok": function() {
$(this).dialog("close");
document.location.href = url1;
}});
autoEdit (mw.config.get('wgPageName'), displayHeadband1);
$('#p1').append(' <button type="button" id="voir1">Voir</button>');
$('#voir1').bind('click', function () {
window.open(url1,'_newtab1');
});
var sousPage = mw.config.get('wgPageName') + "/Droit_d%27auteur";
var url2 = mw.config.get('wgServer') + mw.config.get('wgScript') + '?title=' + decodeURIComponent(sousPage);
autoEdit(sousPage,commentCopyvio);
$('#p2').append(' <button type="button" id="voir2">Voir</button>');
$('#voir2').bind('click', function () {
window.open(url2,'_newtab2');
});
var url3 = mw.config.get('wgServer') + mw.config.get('wgScript') + '?title=' + decodeURIComponent("Utilisateur:Kojemiaka/Pages_soup%C3%A7onn%C3%A9es_de_violation_de_copyright");
autoEdit("Utilisateur:Kojemiaka/Pages_soup%C3%A7onn%C3%A9es_de_violation_de_copyright",indexCopyvio);
$('#p3').append(' <button type="button" id="voir3">Voir</button>');
$('#voir3').bind('click', function () {
window.open(url3,'_newtab3');
});
}
},
{
text: "Annuler",
click: function() { $(this).dialog("close"); }
}
]}
);
});
$('#copyvio2').bind('click', function () {
// Texte de la boîte de dialogue
$("<div id='dialog2' title='Signaler un copyvio'>"
+"<br/>Entrez l\'adresse du site qui a été copié : <br/><input id='site' size='60'/><br/>"
+"<br/>Commentaires : <br/><textarea id='details2' rows='10' cols='60' placeholder='Précisez la nature du copyvio et signez (en langage wiki)'></textarea>"
+"<div/>").appendTo('body');
// Ouverture de la boîte de dialogue
$('#dialog2').dialog(
{ modal: true },
{height:400},
{width:700},
{open: function () {$('#details2').blur();}},//On annule le ciblage de la textarea
{close: function() { $('#dialog2').remove();}},
{buttons:[
{
text: "Signaler le copyvio",
click: function() {
site = document.getElementById ('site').value;
comments = document.getElementById ('details2').value;
var url1 = mw.config.get('wgServer') + mw.config.get('wgScript') + '?title=' + decodeURIComponent(mw.config.get('wgPageName'));
$('#dialog2').html('<p id="p1">Ajout du bandeau "Copie de site"<p/><br/><p id="p2">Création de la sous-page de discussion du copyvio<p/><br/><p id="p3">Indexation du copyvio<p/>');
//Réduire la taille de la fenêtre de dialogue + positionnement au centre
$('#dialog2').dialog({ height: 250 }, {width:400});
$('#dialog2').dialog( "option", "position", 'center' );
$('#dialog2').dialog( "option", "buttons", { "Ok": function() {
$(this).dialog("close");
document.location.href = url1;
}});
autoEdit (mw.config.get('wgPageName'), displayHeadband2);
$('#p1').append(' <button type="button" id="voir1">Voir</button>');
$('#voir1').bind('click', function () {
window.open(url1,'_newtab1');
});
var sousPage = mw.config.get('wgPageName') + "/Droit_d%27auteur";
var url2 = mw.config.get('wgServer') + mw.config.get('wgScript') + '?title=' + decodeURIComponent(sousPage);
autoEdit(sousPage,commentCopyvio);
$('#p2').append(' <button type="button" id="voir2">Voir</button>');
$('#voir2').bind('click', function () {
window.open(url2,'_newtab2');
});
var url3 = mw.config.get('wgServer') + mw.config.get('wgScript') + '?title=' + decodeURIComponent("Utilisateur:Kojemiaka/Pages_soup%C3%A7onn%C3%A9es_de_violation_de_copyright");
autoEdit("Utilisateur:Kojemiaka/Pages_soup%C3%A7onn%C3%A9es_de_violation_de_copyright",indexCopyvio);
$('#p3').append(' <button type="button" id="voir3">Voir</button>');
$('#voir3').bind('click', function () {
window.open(url3,'_newtab3');
});
}
},
{
text: "Annuler",
click: function() { $(this).dialog("close"); }
}
]}
);
});
}
function main () {
addCopyvioMenuItem ();
displayForm ();
}
addOnloadHook(main); // Charge main à chaque chargement de page
//</nowiki></pre></source>