|
|
Ligne 1 : |
Ligne 1 : |
| /* *************************************************************************************************************** | | // [[Catégorie:JavaScript du Wiktionnaire|RenommageCategorie.js]] |
|
| |
|
| Fonction : Renommage/vidage de catégorie
| | importScriptURI('//fr.wikipedia.org/w/index.php?title=Mediawiki:Gadget-RenommageCategorie.js&action=raw&ctype=text/javascript'); |
| | |
| * Ajoute un onglet "renommer" en haut d'une page de catégorie.
| |
| | |
| * Détail du fonctionnement :
| |
| 1. modification/retrait¹ automatique de lien catégorie dans les pages et les sous-catégories d'une catégorie;
| |
| 2. si nécessaire² : copie du contenu de l'ancienne catégorie dans la nouvelle + crédit des auteurs en page de discussion;
| |
| 3. si nécessaire² : suppression de l'ancienne catégorie³;
| |
| | |
| ¹ basé sur la partie "édition" du gadget [[MediaWiki:Gadget-HotCats.js]], plusieurs pop-up permettent de définir les paramètres.
| |
| ² après une pop-up de confirmation
| |
| ³ si utilisateur sysop uniquement
| |
| | |
| * Documentation complète : [[Projet:JavaScript/Notices/RenommageCategorie]]
| |
| | |
| * Licence : Domaine public
| |
| | |
| {{Catégorisation JS|RenommageCategorie}}
| |
| ******************************************************************************************************************* */
| |
| //<source lang=javascript><pre><nowiki>
| |
| | |
| ////////////////////////////////////////////// TEXTES GLOBAUX ///////////////////////////
| |
| | |
| // Libellé de l'onglet
| |
| var RenommageCategorie_Text_Move = 'Renommer';
| |
| | |
| // Pop-up paramètres
| |
| var RenommageCategorie_Text_PopRemoveCat = 'Catégorie à supprimer';
| |
| var RenommageCategorie_Text_PopAddCat = 'Catégorie à ajouter';
| |
| var RenommageCategorie_Text_PopConfirm = 'Publier sans confirmation manuelle ?';
| |
| var RenommageCategorie_Text_PopWatch = 'Suivre les pages modifiées ?';
| |
| var RenommageCategorie_Text_PopButtonOKText = 'Valider';
| |
| var RenommageCategorie_Text_PopButtonOKTitle = 'Lancer les modifications';
| |
| var RenommageCategorie_Text_PopButtonCancelText = 'Annuler';
| |
| var RenommageCategorie_Text_PopButtonCancelTitle = 'Annuler';
| |
| | |
| // Pop-up de confirmation
| |
| var RenommageCategorie_Text_Modif = "Vous vous apprêtez à modifier $1 pages.\n\n"
| |
| + "Continuer ?\n"; // Confirmation édition (<50 pages)
| |
| var RenommageCategorie_Text_GrosseModif = "Vous vous apprêtez à modifier $1 pages.\n"
| |
| + "Cette action d'envergure devrait être effectuée de préférence par un bot.\n\n"
| |
| + "Continuer quand même ?\n"; // Confirmation grosse édition (>50 pages)
| |
| var RenommageCategorie_Text_Delay = "(Un délai de $1 secondes s'écoulera entre deux modifications)";
| |
| var RenommageCategorie_Text_ConfirmEdit = "$1 -> $2\n\nRésumé de modification : $3"; // Confirmation édition
| |
| var RenommageCategorie_Text_ConfirmMove = "Recopier le contenu de $1 dans $2 ?"; // Copie
| |
| var RenommageCategorie_Text_ConfirmMoveBis = 'Publier la modification ?' // Confirmation Copie
| |
| var RenommageCategorie_Text_ConfirmDelete = "Supprimer la catégorie $1 ?"; // Suppression
| |
| | |
| // Pop-up lors d'un problème
| |
| var RenommageCategorie_Text_AlertSameCat = "Les catégories à supprimer et à ajouter sont identiques";
| |
| var RenommageCategorie_Text_AlertEditPb1 = "Impossible de trouver la catégorie « $1 » - elle est peut-être incluse via un modèle.";
| |
| var RenommageCategorie_Text_AlertEditPb2 = "La catégorie « $1 » est déjà présente.";
| |
| var RenommageCategorie_Text_AlertEditPb3 = "Plusieurs occurrences de la catégorie « $1 » trouvées.";
| |
| var RenommageCategorie_Text_AlertEditTryAgain = 'Problème !\n\nRéessayer ?';
| |
| var RenommageCategorie_Text_AlertEditNextPage = 'Page suivante ?'
| |
| | |
| // Résumés de modification
| |
| var RenommageCategorie_Text_ResumeEditModif = "Modification de la catégorie [[$1]] → [[$2]]";
| |
| var RenommageCategorie_Text_ResumeEditDelete = "Retrait de la catégorie [[$1]]";
| |
| var RenommageCategorie_Text_ResumeMove = "Transfert du contenu depuis [[$1]]";
| |
| var RenommageCategorie_Text_ResumeMoveHist = "Crédit des auteurs depuis [[$1]]";
| |
| var RenommageCategorie_Text_ResumeDelete = "Catégorie remplacée par [[$2]]";
| |
| var RenommageCategorie_Text_ResumeDeleteBis = "Catégorie vide et obsolète";
| |
| | |
| ////////////////////////////////////////////// TEXTES LOCAUX ///////////////////////////
| |
| | |
| // Résumés de modification : lien vers la documentation
| |
| var RenommageCategorie_Text_Script = '[[Projet:JavaScript/Notices/RenommageCategorie|Renommage de catégorie]] : ';
| |
| | |
| // Modèle pour crédit des auteurs en page de discussion
| |
| var RenommageCategorie_Text_HistTemplate = "{{Catégorie renommée|$1|contributeurs=$2}}\n";
| |
| | |
| // Modèle User
| |
| var RenommageCategorie_Text_UserTemplate = "{{U|$1}}";
| |
| | |
| // Modèle Suppression Immédiate
| |
| var RenommageCategorie_Text_DeleteTemplate = "{{Suppression Immédiate|raison=$1|utilisateur=$2}}";
| |
| | |
| //////////////////////////////////////////////////////////////////////////////
| |
| | |
| // --------------------------------------------------------------------------------------------
| |
| // Variables par défaut
| |
| | |
| var RenommageCategorie_RemoveCat = wgTitle; // Catégorie à enlever
| |
| var RenommageCategorie_AddCat = wgTitle; // Catégorie à ajouter
| |
| var RenommageCategorie_Autoconfirm = false; // Publication automatique
| |
| var RenommageCategorie_AutoWatch = false; // Suivi automatique
| |
| var RenommageCategorie_TimeOut = 10; // Délai par défaut après publication
| |
| | |
| if( (wgUserGroups.indexOf("sysop")!=-1)||(wgUserGroups.indexOf("bot")!=-1)){
| |
| var RenommageCategorie_APILimit = 4999;
| |
| }else{
| |
| var RenommageCategorie_APILimit = 499;
| |
| }
| |
| if(wgUserGroups.indexOf("bot")!=-1){
| |
| var RenommageCategorie_IsBot = true;
| |
| }else{
| |
| var RenommageCategorie_IsBot = false;
| |
| }
| |
| | |
| // --------------------------------------------------------------------------------------------
| |
| // Fonction de requête
| |
| | |
| var RenommageCategorie_ajax = {
| |
| http:function(bundle){ var xmlhttp; try{ xmlhttp = new XMLHttpRequest(); }catch(e){ try{ xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); }catch(e){ try{ xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }catch(e){ xmlhttp = false; }}}; if(xmlhttp){ xmlhttp.onreadystatechange = function(){ if (xmlhttp.readyState == 4){ RenommageCategorie_ajax.httpComplete(xmlhttp,bundle);}}; xmlhttp.open(bundle.method ? bundle.method : "GET",bundle.url,bundle.async == false ? false : true); if (bundle.headers) { for (var field in bundle.headers){ try{ xmlhttp.setRequestHeader(field,bundle.headers[field]); }catch(err){}}}; xmlhttp.send(bundle.data ? bundle.data : null); }; return xmlhttp;},
| |
| httpComplete: function(xmlhttp,bundle){ if(xmlhttp.status == 200 || xmlhttp.status == 302){ if(bundle.onSuccess) bundle.onSuccess(xmlhttp,bundle); }else if(bundle.onFailure){ bundle.onFailure(xmlhttp,bundle); }else{ }}
| |
| };
| |
| | |
| // --------------------------------------------------------------------------------------------
| |
| // Lancement
| |
| | |
| if(wgNamespaceNumber==14){
| |
| importScriptURI('http://fr.wikipedia.org/w/index.php?title=Mediawiki:Gadget-RenommageCategorieLang.js&action=raw&ctype=text/javascript');
| |
| addOnloadHook(RenommageCategorie_AddLink);
| |
| }
| |
| | |
| // --------------------------------------------------------------------------------------------
| |
| // Ajout du lien "Renommer"
| |
| | |
| function RenommageCategorie_AddLink(){
| |
| if(typeof(RenommageCategorie_LangCustom)=="function") RenommageCategorie_LangCustom();
| |
| if(typeof(RenommageCategorie_SiteCustom)=="function") RenommageCategorie_SiteCustom();
| |
| if(typeof(RenommageCategorie_UserCustom)=="function") RenommageCategorie_UserCustom();
| |
| var OngletsCactions = document.getElementById('p-cactions');
| |
| if(OngletsCactions){
| |
| var CactionsUl = OngletsCactions.getElementsByTagName('ul')[0];
| |
| CactionsUl.innerHTML += '<li><a href="javascript:RenommageCategorie_OpenMenu();">'+RenommageCategorie_Text_Move+'</a></li>';
| |
| if(OngletsCactions.className){
| |
| OngletsCactions.className = OngletsCactions.className.replace(/[ ]*emptyPortlet[ ]*/, " ");
| |
| }
| |
| }
| |
| }
| |
| | |
| // --------------------------------------------------------------------------------------------
| |
| // Création du menu
| |
| | |
| function RenommageCategorie_OpenMenu(){
| |
| if(document.getElementById('RenommageCategorie_Menu')) return;
| |
|
| |
| var agt=navigator.userAgent.toLowerCase();
| |
| var is_ie = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
| |
| if(is_ie){
| |
| var LargeurEcran = parseInt(screen.width);
| |
| var HauteurEcran = parseInt(screen.height);
| |
| }else{
| |
| var LargeurEcran = parseInt(window.innerWidth);
| |
| var HauteurEcran = parseInt(window.innerHeight);
| |
| }
| |
| | | |
| var Menu = document.createElement('div');
| | function RenommageCategorie_SiteCustom(){ |
| Menu.id='RenommageCategorie_Menu';
| | // Résumé de modification : lien vers la documentation |
| Menu.className ='RenommageCategorie_Menu';
| | RenommageCategorie_Text_Script = '[[w:Projet:JavaScript/Notices/RenommageCategorie|Renommage de catégorie]] : '; |
| Menu.style.position='fixed';
| | // Modèle pour crédit des auteurs en page de discussion |
| Menu.style.zIndex= 500;
| | RenommageCategorie_Text_HistTemplate = "{{Catégorie renommée|$1|contributeurs=$2}}\n"; |
| Menu.style.padding='5px';
| | // Modèle User |
| Menu.style.backgroundColor='white';
| | RenommageCategorie_Text_UserTemplate = "{{U|$1}}"; |
| Menu.style.border='3px double black';
| |
| Menu.style.width= '450px';
| |
| Menu.style.height= '120px';
| |
| document.body.appendChild(Menu);
| |
| PositionGauche = parseInt((LargeurEcran-Menu.clientWidth)/2) ;
| |
| PositionHaut = parseInt((HauteurEcran-Menu.clientHeight)/3) ;
| |
| Menu.style.left=PositionGauche + 'px';
| |
| Menu.style.top=PositionHaut + 'px';
| |
| var MenuContent = ''
| |
| + '<input type="text" id="RemoveCat" value="'+wgTitle+'" disabled="disabled" size="50"/>'
| |
| + '<label for="RemoveCat">'+RenommageCategorie_Text_PopRemoveCat+'</label>'
| |
| + '<br />'
| |
| + '<input type="text" id="AddCat" value="'+wgTitle+'" size="50" />'
| |
| + '<label for="AddCat">'+RenommageCategorie_Text_PopAddCat+'</label>'
| |
| + '<br />'
| |
| + '<input type="checkbox" id="Autoconfirm" style="cursor:pointer;" />'
| |
| + '<label for="Autoconfirm">'+RenommageCategorie_Text_PopConfirm+'</label>' | |
| + ' '
| |
| + '<input type="checkbox" id="AutoWatch" style="cursor:pointer;" />'
| |
| + '<label for="AutoWatch">'+RenommageCategorie_Text_PopWatch+'</label>'
| |
| + '<br />'
| |
| + '<br />'
| |
| + '<center>'
| |
| + '<input type="button" style="cursor:pointer;" '
| |
| + ' value="'+RenommageCategorie_Text_PopButtonOKText+'" title="'+RenommageCategorie_Text_PopButtonOKTitle+'" '
| |
| + ' onclick="RenommageCategorie_CheckMenu();" onselect="RenommageCategorie_CheckMenu();"/>'
| |
| + ' '
| |
| + '<input type="button" style="cursor:pointer;" '
| |
| + ' value="'+RenommageCategorie_Text_PopButtonCancelText+'" title="'+RenommageCategorie_Text_PopButtonCancelTitle+'" '
| |
| + ' onclick="RenommageCategorie_CloseMenu();" onselect="RenommageCategorie_CloseMenu();"/>'
| |
| + '</center>';
| |
| Menu.innerHTML = MenuContent;
| |
| document.getElementById("AddCat").focus();
| |
| }
| |
| | |
| // --------------------------------------------------------------------------------------------
| |
| // Annulation du menu
| |
| | |
| function RenommageCategorie_CloseMenu(){
| |
| var Menu = document.getElementById('RenommageCategorie_Menu');
| |
| if(Menu) RenommageCategorie_DeleteElement(Menu);
| |
| }
| |
| | |
| // --------------------------------------------------------------------------------------------
| |
| // Validation du menu
| |
| | |
| function RenommageCategorie_CheckMenu(){
| |
| var AddCat = document.getElementById('AddCat');
| |
| var Autoconfirm = document.getElementById('Autoconfirm');
| |
| var AutoWatch = document.getElementById('AutoWatch');
| |
| if( (!AddCat)||(!Autoconfirm)||(!AutoWatch) ) return;
| |
|
| |
| RenommageCategorie_AddCat = AddCat.value;
| |
| if(RenommageCategorie_AddCat == RenommageCategorie_RemoveCat){
| |
| alert(RenommageCategorie_Text_AlertSameCat);
| |
| return;
| |
| }
| |
| if(Autoconfirm.checked) RenommageCategorie_Autoconfirm = true;
| |
| else RenommageCategorie_Autoconfirm = false;
| |
| if(AutoWatch.checked) RenommageCategorie_AutoWatch = true;
| |
| else RenommageCategorie_AutoWatch = false;
| |
| RenommageCategorie_CloseMenu();
| |
| RenommageCategorie_ListPages();
| |
| }
| |
| | |
| // --------------------------------------------------------------------------------------------
| |
| // Listage des pages de la catégorie cible
| |
| | |
| function RenommageCategorie_ListPages(CatArray, category, categorycontinue){
| |
| if(!CatArray) CatArray = new Array();
| |
| if(!category) category = wgPageName;
| |
| if(!categorycontinue) categorycontinue = '';
| |
| var URL = wgServer + wgScriptPath + '/api.php?format=xml&action=query&list=categorymembers'
| |
| + '&cmlimit=' + RenommageCategorie_APILimit
| |
| + '&cmtitle=' + encodeURIComponent(category)
| |
| + categorycontinue;
| |
| | |
| RenommageCategorie_ajax.http({
| |
| url: URL,
| |
| cat: category,
| |
| catlist: CatArray,
| |
| onSuccess:RenommageCategorie_ListPagesDone
| |
| });
| |
| }
| |
| | |
| function RenommageCategorie_ListPagesDone(Req, data){
| |
| var CatArray = data.catlist;
| |
| var category = data.cat;
| |
| var ElementTraitement = Req.responseXML;
| |
| var Pages = ElementTraitement.getElementsByTagName('cm');
| |
| for(a=0;a<Pages.length;a++){
| |
| var TitrePage = Pages[a].getAttribute('title');
| |
| if(CatArray.indexOf(TitrePage)==-1) CatArray.push(TitrePage);
| |
| }
| |
| var CatContinue = ElementTraitement.getElementsByTagName('query-continue')[0];
| |
| if(CatContinue){
| |
| var AutreRequeteContinue = '&cmcontinue=' + encodeURIComponent(CatContinue.firstChild.getAttribute("cmcontinue"));
| |
| RenommageCategorie_ListPages(CatArray, category, AutreRequeteContinue);
| |
| }else{
| |
| RenommageCategorie_SortList(CatArray);
| |
| }
| |
| }
| |
| | |
| // --------------------------------------------------------------------------------------------
| |
| // Triage des pages de la catégorie cible | |
| | |
| var RenommageCategorie_CatList = new Array();
| |
| | |
| function RenommageCategorie_SortList(CatArray){
| |
| while(RenommageCategorie_CatList[0]) RenommageCategorie_CatList.pop();
| |
| var PagesTemp = CatArray.sort();
| |
| for(var a=0;a<PagesTemp.length;a++){
| |
| if(PagesTemp[a]!=PagesTemp[(a+1)]){
| |
| RenommageCategorie_CatList.push(PagesTemp[a]);
| |
| }
| |
| }
| |
| var Length = RenommageCategorie_CatList.length;
| |
| if(!RenommageCategorie_IsBot){
| |
| if(Length<10) RenommageCategorie_TimeOut = (RenommageCategorie_TimeOut/2);
| |
| if(Length>50){
| |
| RenommageCategorie_TimeOut = (RenommageCategorie_TimeOut*2);
| |
| var Text = ''
| |
| + RenommageCategorie_Text_GrosseModif.split('$1').join(Length)
| |
| + RenommageCategorie_Text_Delay.split('$1').join(RenommageCategorie_TimeOut)
| |
| var GrosseModif = confirm(Text);
| |
| if(!GrosseModif) window.location.reload();
| |
| }else if(Length>0){
| |
| var Text = ''
| |
| + RenommageCategorie_Text_Modif.split('$1').join(Length)
| |
| + RenommageCategorie_Text_Delay.split('$1').join(RenommageCategorie_TimeOut)
| |
| var Modif = confirm(Text);
| |
| if(!Modif) window.location.reload();
| |
| }
| |
| }
| |
| RenommageCategorie_ModifCat(0);
| |
| }
| |
| | |
| // --------------------------------------------------------------------------------------------
| |
| // Changement de catégorie dans une page
| |
| | |
| function RenommageCategorie_ModifCat(position){
| |
| var Page = RenommageCategorie_CatList[position];
| |
| if(!Page){
| |
| var CreateNewCat_SurEtCertain = false;
| |
| if(RenommageCategorie_AddCat!='') CreateNewCat_SurEtCertain = confirm(RenommageCategorie_Text_ConfirmMove.split('$1').join(RenommageCategorie_RemoveCat).split('$2').join(RenommageCategorie_AddCat));
| |
| if(!CreateNewCat_SurEtCertain){
| |
| var urlOldCat = wgServer + wgScript + '?title='
| |
| + wgFormattedNamespaces[14]+':'+encodeURIComponent(RenommageCategorie_RemoveCat);
| |
| var DeleteOldCat_SurEtCertain = confirm(RenommageCategorie_Text_ConfirmDelete.split('$1').join(RenommageCategorie_RemoveCat));
| |
| if(DeleteOldCat_SurEtCertain){
| |
| if(wgUserGroups.indexOf('sysop')!=-1){
| |
| RenommageCategorie_ajax.http({
| |
| url: urlOldCat + '&action=delete',
| |
| onSuccess:RenommageCategorie_DeleteOldCat
| |
| });
| |
| }else{
| |
| RenommageCategorie_ajax.http({
| |
| url: urlOldCat + '&action=edit',
| |
| onSuccess:RenommageCategorie_DoDeletionRequest
| |
| });
| |
| }
| |
| }else{
| |
| window.location.reload();
| |
| }
| |
| }else{
| |
| RenommageCategorie_CreateNewCat();
| |
| }
| |
| return;
| |
| }
| |
| var URL = wgServer + wgScript + '?title=' + encodeURIComponent(Page) + '&action=edit';
| |
| RenommageCategorie_ajax.http({
| |
| url: URL,
| |
| pos: position,
| |
| onSuccess:RenommageCategorie_ModifCatRunning
| |
| });
| |
| }
| |
| | |
| function RenommageCategorie_ModifCatRunning(Req, data){
| |
| var position = data.pos;
| |
| while(document.body.firstChild){ RenommageCategorie_DeleteElement(document.body.firstChild);}
| |
| document.body.innerHTML = Req.responseText;
| |
| var TextArea = document.getElementById('wpTextbox1');
| |
| if(!TextArea){
| |
| var Problem = confirm( url + '\n\n' + RenommageCategorie_Text_AlertEditTryAgain );
| |
| if(Problem){
| |
| RenommageCategorie_ModifCat(position);
| |
| }else{
| |
| var NextPage = confirm(RenommageCategorie_Text_AlertEditNextPage);
| |
| if(NextPage) RenommageCategorie_ModifCat((position+1));
| |
| }
| |
| return;
| |
| }
| |
| var OldText = TextArea.value;
| |
| var Sommaire = '';
| |
| if ( RenommageCategorie_RemoveCat != "" ) {
| |
| var OldCatRegExp = new RegExp("(\\s*)\\[\\[ *(?:"+wgFormattedNamespaces[14]+"|"+wgFormattedNamespaces[14].toLowerCase()+"|Category|category) *: *" + RenommageCategorie_AddCat.replace(/([\\\^\$\*\+\?\.\|\{\}\[\]\(\)])/g, "\\$1") + " *(\\|[^\\]]*)?\\]\\]", "g");
| |
| var OldCatmatches = OldText.match(OldCatRegExp);
| |
| var CatRegExp = new RegExp("(\\s*)\\[\\[ *(?:"+wgFormattedNamespaces[14]+"|"+wgFormattedNamespaces[14].toLowerCase()+"|Category|category) *: *" + RenommageCategorie_RemoveCat.replace(/([\\\^\$\*\+\?\.\|\{\}\[\]\(\)])/g, "\\$1") + " *(\\|[^\\]]*)?\\]\\]", "g");
| |
| var matches = OldText.match(CatRegExp);
| |
| if (OldCatmatches == null && matches != null && matches.length == 1) { // Found one occurrence of the category - good!
| |
| if(RenommageCategorie_AddCat != ""){
| |
| OldText = OldText.replace(CatRegExp, "$1[["+wgFormattedNamespaces[14]+":" + RenommageCategorie_AddCat + "$2]]");
| |
| Sommaire = RenommageCategorie_Text_ResumeEditModif.split('$1').join(wgFormattedNamespaces[14]+":"+RenommageCategorie_RemoveCat).split('$2').join(wgFormattedNamespaces[14]+":"+RenommageCategorie_AddCat);
| |
| } else {
| |
| OldText = OldText.replace(CatRegExp, "");
| |
| Sommaire = RenommageCategorie_Text_ResumeEditDelete.split('$1').join(wgFormattedNamespaces[14]+":"+RenommageCategorie_RemoveCat);
| |
| }
| |
| } else {
| |
| var Error;
| |
| if(OldCatmatches!=null){
| |
| Error = RenommageCategorie_Text_AlertEditPb2.split('$1').join(RenommageCategorie_AddCat);
| |
| }else if(matches==null){
| |
| Error = RenommageCategorie_Text_AlertEditPb1.split('$1').join(RenommageCategorie_RemoveCat);
| |
| }else if(matches.length>1){
| |
| Error = RenommageCategorie_Text_AlertEditPb3.split('$1').join(RenommageCategorie_RemoveCat);
| |
| }
| |
| var Suivante = confirm(Error + RenommageCategorie_Text_AlertEditNextPage);
| |
| if(!Suivante){
| |
| window.location.reload();
| |
| }else{
| |
| RenommageCategorie_AddBandeau(CatArray, (position+1));
| |
| }
| |
| return;
| |
| }
| |
| }
| |
| var TexteFinal = OldText;
| |
| var SommaireFinal = Sommaire ;
| |
| document.getElementById('wpTextbox1').value = TexteFinal;
| |
| document.getElementById('wpSummary').value = RenommageCategorie_Text_Script+SommaireFinal;
| |
| document.getElementById('wpMinoredit').checked = "checked";
| |
| if(RenommageCategorie_AutoWatch) document.getElementById('wpWatchthis').checked = "checked";
| |
| else document.getElementById('wpWatchthis').checked = "";
| |
| if(!RenommageCategorie_Autoconfirm){
| |
| var SurEtCertain = confirm(RenommageCategorie_Text_ConfirmEdit.split('$1').join(RenommageCategorie_RemoveCat).split('$2').join(RenommageCategorie_AddCat).split('$3').join(Sommaire));
| |
| if(!SurEtCertain){
| |
| var SurEtCertainBis = confirm(RenommageCategorie_Text_AlertEditNextPage);
| |
| if(!SurEtCertainBis){
| |
| window.location.reload();
| |
| }else{
| |
| RenommageCategorie_ModifCat((position+1));
| |
| }
| |
| return;
| |
| }
| |
| }
| |
| var action = document.getElementById("editform").action;
| |
| var headers = new Array();
| |
| headers['Content-Type'] = 'application/x-www-form-urlencoded';
| |
| RenommageCategorie_ajax.http({
| |
| url: action,
| |
| method: "POST",
| |
| headers: headers,
| |
| data: RenommageCategorie_GetPostValues(),
| |
| onSuccess:RenommageCategorie_ModifCatDone,
| |
| position:position
| |
| });
| |
| }
| |
| | |
| function RenommageCategorie_ModifCatDone(Req, data){
| |
| var position = data.position;
| |
| while(document.body.firstChild){RenommageCategorie_DeleteElement(document.body.firstChild);}
| |
| document.body.innerHTML = Req.responseText;
| |
| if(!document.getElementById("editform")){
| |
| if(RenommageCategorie_IsBot){
| |
| RenommageCategorie_ModifCat((position+1));
| |
| }else{
| |
| setTimeout("RenommageCategorie_ModifCat("+(position+1)+")",RenommageCategorie_TimeOut*1000);
| |
| }
| |
| }else{
| |
| if(!RenommageCategorie_IsBot){
| |
| var DeuxiemeEssai = confirm(RenommageCategorie_Text_AlertEditTryAgain);
| |
| if(!DeuxiemeEssai) return;
| |
| }
| |
| RenommageCategorie_ModifCat(position);
| |
| }
| |
| }
| |
| | |
| // --------------------------------------------------------------------------------------------
| |
| // Création nouvelle catégorie par copie
| |
| | |
| function RenommageCategorie_CreateNewCat(){
| |
| var URLOldCat = wgServer+wgScript+'?title='+wgFormattedNamespaces[14]+':'+encodeURIComponent(RenommageCategorie_RemoveCat)+'&action=raw';
| |
| RenommageCategorie_ajax.http({
| |
| url: URLOldCat,
| |
| onSuccess:RenommageCategorie_CreateNewCat_GetOldText
| |
| | |
| });
| |
| }
| |
| | |
| function RenommageCategorie_CreateNewCat_GetOldText(Req, data){
| |
| var Text = Req.responseText;
| |
| var URLNewCat = wgServer+wgScript+'?title='+wgFormattedNamespaces[14]+':'+encodeURIComponent(RenommageCategorie_AddCat)+'&action=edit';
| |
| RenommageCategorie_ajax.http({
| |
| url: URLNewCat,
| |
| onSuccess:RenommageCategorie_CreateNewCatProcess,
| |
| text:Text
| |
| });
| |
| }
| |
| | |
| function RenommageCategorie_CreateNewCatProcess(Req, data){
| |
| var TexteFinal = data.text;
| |
| while(document.body.firstChild){ RenommageCategorie_DeleteElement(document.body.firstChild);}
| |
| document.body.innerHTML = Req.responseText;
| |
| var TextArea = document.getElementById('wpTextbox1');
| |
| if(!TextArea){
| |
| var Problem = confirm( urlNewCat + '\n\n' + RenommageCategorie_Text_AlertEditTryAgain );
| |
| if(Problem){
| |
| RenommageCategorie_CreateNewCat();
| |
| }
| |
| return;
| |
| }
| |
| var SommaireFinal = RenommageCategorie_Text_Script + RenommageCategorie_Text_ResumeMove.split('$1').join(wgFormattedNamespaces[14]+":"+RenommageCategorie_RemoveCat);
| |
| document.getElementById('wpTextbox1').value = TexteFinal;
| |
| document.getElementById('wpSummary').value = SommaireFinal;
| |
| document.getElementById('wpMinoredit').checked = "checked";
| |
| if(!RenommageCategorie_Autoconfirm){
| |
| var SurEtCertainNewCat = confirm(RenommageCategorie_Text_ConfirmMoveBis);
| |
| if(!SurEtCertainNewCat){
| |
| return;
| |
| }
| |
| }
| |
| var action = document.getElementById("editform").action;
| |
| var headers = new Array();
| |
| headers['Content-Type'] = 'application/x-www-form-urlencoded';
| |
| RenommageCategorie_ajax.http({
| |
| url: action,
| |
| method: "POST",
| |
| headers: headers,
| |
| data: RenommageCategorie_GetPostValues(),
| |
| onSuccess:RenommageCategorie_CreateNewCatDone
| |
| });
| |
| }
| |
| | |
| function RenommageCategorie_CreateNewCatDone(Req, data){
| |
| while(document.body.firstChild){RenommageCategorie_DeleteElement(document.body.firstChild);}
| |
| document.body.innerHTML = Req.responseText;
| |
| if(!document.getElementById("editform")){
| |
| RenommageCategorie_GetUsers();
| |
| }else{
| |
| var DeuxiemeEssai = confirm(RenommageCategorie_Text_AlertEditTryAgain);
| |
| if(DeuxiemeEssai) RenommageCategorie_CreateNewCat();
| |
| }
| |
| } | | } |
|
| |
| // --------------------------------------------------------------------------------------------
| |
| // Crédit des auteurs de l'ancienne catégorie : recherche des auteurs
| |
|
| |
| function RenommageCategorie_GetUsers(Users, UserContinue){
| |
| if(!Users) Users = new Array();
| |
| if(!UserContinue) UserContinue = "";
| |
| var URL = wgServer+wgScriptPath+'/api.php?format=xml&action=query&prop=revisions'
| |
| + '&rvlimit='+RenommageCategorie_APILimit
| |
| + '&rvprop=user'
| |
| + '&titles='+wgFormattedNamespaces[14]+':'+encodeURIComponent(RenommageCategorie_RemoveCat)
| |
| + UserContinue;
| |
| RenommageCategorie_ajax.http({
| |
| url: URL,
| |
| onSuccess:RenommageCategorie_GetUsersDone,
| |
| users:Users
| |
| });
| |
| }
| |
|
| |
| function RenommageCategorie_GetUsersDone(Req, data){
| |
| var Users = data.users;
| |
| var Reponse = Req.responseXML;
| |
| var RevUsers = Reponse.getElementsByTagName("rev");
| |
| for(var a=0;a<RevUsers.length;a++){
| |
| var ThisUser = RevUsers[a].getAttribute("user");
| |
| if(Users.indexOf(ThisUser)==-1) Users.push(ThisUser);
| |
| }
| |
| var RevContinue = Reponse.getElementsByTagName("query-continue")[0];
| |
| if(RevContinue){
| |
| var Cont = "&rvstartid=" + encodeURIComponent(RevContinue.firstChild.getAttribute("rvstartid"));
| |
| RenommageCategorie_GetUsers(Users, Cont);
| |
| }else{
| |
| var urlTalkNewCat = wgServer+wgScript+'?title='+wgFormattedNamespaces[15]+':'+encodeURIComponent(RenommageCategorie_AddCat)+'&action=edit';
| |
| RenommageCategorie_ajax.http({
| |
| url: urlTalkNewCat,
| |
| onSuccess:RenommageCategorie_UpDateCatTalkPage,
| |
| users:Users
| |
| });
| |
| RenommageCategorie_UpDateCatTalkPage(Users);
| |
| }
| |
| }
| |
|
| |
| // --------------------------------------------------------------------------------------------
| |
| // Crédit des auteurs de l'ancienne catégorie : édition de la page de discussion
| |
|
| |
| function RenommageCategorie_UpDateCatTalkPage(Req, data){
| |
| var Users = data.users;
| |
| while(document.body.firstChild){ RenommageCategorie_DeleteElement(document.body.firstChild);}
| |
| document.body.innerHTML = Req.responseText;
| |
| var TextArea = document.getElementById('wpTextbox1');
| |
| if(!TextArea){
| |
| var Problem = confirm( urlTalkNewCat + '\n\n' + RenommageCategorie_Text_AlertEditTryAgain );
| |
| if(Problem){
| |
| RenommageCategorie_UpDateCatTalkPage(Users);
| |
| }
| |
| return;
| |
| }
| |
| var OldContent = TextArea.value;
| |
| var NewTemplate = RenommageCategorie_Text_HistTemplate.split('$1').join(RenommageCategorie_RemoveCat);
| |
| var UserList = "";
| |
| for(var a=0;a<Users.length;a++){
| |
| if(a!=0) UserList += ", ";
| |
| UserList += RenommageCategorie_Text_UserTemplate.split('$1').join(Users[a]);
| |
| }
| |
| NewTemplate = NewTemplate.split('$2').join(UserList);
| |
|
| |
| var TexteFinal = NewTemplate + OldContent;
| |
| var SommaireFinal = RenommageCategorie_Text_Script + RenommageCategorie_Text_ResumeMoveHist.split('$1').join(wgFormattedNamespaces[14]+":"+RenommageCategorie_RemoveCat);
| |
|
| |
| document.getElementById('wpTextbox1').value = TexteFinal;
| |
| document.getElementById('wpSummary').value = SommaireFinal;
| |
| document.getElementById('wpMinoredit').checked = "checked";
| |
| if(!RenommageCategorie_Autoconfirm){
| |
| var SurEtCertainNewCat = confirm(RenommageCategorie_Text_ConfirmMoveBis);
| |
| if(!SurEtCertainNewCat){
| |
| return;
| |
| }
| |
| }
| |
| var action = document.getElementById("editform").action;
| |
| var headers = new Array();
| |
| headers['Content-Type'] = 'application/x-www-form-urlencoded';
| |
| RenommageCategorie_ajax.http({
| |
| url: action,
| |
| method: "POST",
| |
| headers: headers,
| |
| data: RenommageCategorie_GetPostValues(),
| |
| onSuccess:RenommageCategorie_UpDateCatTalkPageDone,
| |
| users:Users
| |
| });
| |
| }
| |
|
| |
| function RenommageCategorie_UpDateCatTalkPageDone(Req, data){
| |
| var Users = data.users;
| |
| while(document.body.firstChild){RenommageCategorie_DeleteElement(document.body.firstChild);}
| |
| document.body.innerHTML = Req.responseText;
| |
| if(!document.getElementById("editform")){
| |
| var urlOldCat = wgServer + wgScript + '?title='
| |
| + wgFormattedNamespaces[14]+':'+encodeURIComponent(RenommageCategorie_RemoveCat)
| |
| var DeleteOldCat_SurEtCertain = confirm(RenommageCategorie_Text_ConfirmDelete.split('$1').join(RenommageCategorie_RemoveCat));
| |
| if(DeleteOldCat_SurEtCertain){
| |
| if(wgUserGroups.indexOf('sysop')!=-1){
| |
| RenommageCategorie_ajax.http({
| |
| url: urlOldCat + '&action=delete',
| |
| onSuccess:RenommageCategorie_DeleteOldCat
| |
| });
| |
| }else{
| |
| RenommageCategorie_ajax.http({
| |
| url: urlOldCat + '&action=edit',
| |
| onSuccess:RenommageCategorie_DoDeletionRequest
| |
| });
| |
| }
| |
| }else{
| |
| window.location.reload;
| |
| return;
| |
| }
| |
| }else{
| |
| var DeuxiemeEssai = confirm(RenommageCategorie_Text_AlertEditTryAgain);
| |
| if(DeuxiemeEssai) RenommageCategorie_UpDateCatTalkPage(Users);
| |
| }
| |
| }
| |
|
| |
| // --------------------------------------------------------------------------------------------
| |
| // Suppression de l'ancienne catégorie
| |
|
| |
| function RenommageCategorie_DeleteOldCat(Req, data){
| |
| while(document.body.firstChild){ RenommageCategorie_DeleteElement(document.body.firstChild);}
| |
| var ElementTraitement = document.createElement('div');
| |
| document.body.appendChild(ElementTraitement);
| |
| ElementTraitement.innerHTML = Req.responseText;
| |
| var InputReason = document.getElementById('wpReason');
| |
| if(RenommageCategorie_AddCat==''){
| |
| InputReason.value = RenommageCategorie_Text_Script+RenommageCategorie_Text_ResumeDeleteBis;
| |
| }else{
| |
| InputReason.value = RenommageCategorie_Text_Script+RenommageCategorie_Text_ResumeDelete.split('$2').join(wgFormattedNamespaces[14]+":"+RenommageCategorie_AddCat);
| |
| }
| |
| var CheckWatch = document.getElementById('wpWatch');
| |
| CheckWatch.checked = '';
| |
| var DeleteForm = document.getElementById('deleteconfirm');
| |
| if(RenommageCategorie_Autoconfirm){
| |
| DeleteForm.submit();
| |
| }else{
| |
| var SurEtCertain = confirm(RenommageCategorie_Text_ConfirmDelete.split('$1').join(RenommageCategorie_RemoveCat));
| |
| if(SurEtCertain) DeleteForm.submit();
| |
| }
| |
| }
| |
|
| |
| // --------------------------------------------------------------------------------------------
| |
| // Demande de suppression de l'ancienne catégorie
| |
|
| |
| function RenommageCategorie_DoDeletionRequest(Req, data){
| |
| while(document.body.firstChild){ RenommageCategorie_DeleteElement(document.body.firstChild);}
| |
| var ElementTraitement = document.createElement('div');
| |
| document.body.appendChild(ElementTraitement);
| |
| ElementTraitement.innerHTML = Req.responseText;
| |
| var EditForm = document.getElementById('editform');
| |
| EditForm.style.display = "none";
| |
| var Reason = "";
| |
| if(RenommageCategorie_AddCat==''){
| |
| Reason = RenommageCategorie_Text_Script+RenommageCategorie_Text_ResumeDeleteBis;
| |
| }else{
| |
| Reason = RenommageCategorie_Text_Script+RenommageCategorie_Text_ResumeDelete.split('$2').join(":"+wgFormattedNamespaces[14]+":"+RenommageCategorie_AddCat);
| |
| }
| |
| var DeleteTemplate = RenommageCategorie_Text_DeleteTemplate;
| |
| DeleteTemplate = DeleteTemplate.split("$1").join(Reason).split("$2").join("~"+"~~");
| |
| document.getElementById('wpTextbox1').value = DeleteTemplate;
| |
| document.getElementById('wpSummary').value = Reason;
| |
| EditForm.submit();
| |
| }
| |
|
| |
| // --------------------------------------------------------------------------------------------
| |
| // FONCTION : Récupération des paramètres de publications
| |
|
| |
|
| |
| function RenommageCategorie_GetPostValues(){
| |
| var data="";
| |
| var Params = new Array("wpTextbox1", "wpSection", "wpSummary", "wpWatchthis", "wpMinoredit", "wpStarttime", "wpEdittime", "wpEditToken");
| |
| for(var a=0,l=Params.length;a<l;a++){
| |
| var Element = document.getElementById(Params[a]);
| |
| if(!Element) Element = document.getElementsByName(Params[a])[0];
| |
| if(Element){
| |
| if(!(Element.tagName && Element.tagName.toLowerCase()=='input' && Element.type == 'checkbox' && !Element.checked)){
| |
| data += '&'+Params[a]+'=' + encodeURIComponent(Element.value);
| |
| }
| |
| }
| |
| }
| |
| return (data+'&wpsave=1');
| |
| }
| |
|
| |
| // FONCTION : Suppression d'un élément
| |
|
| |
| function RenommageCategorie_DeleteElement(OldElement){
| |
| var agt=navigator.userAgent.toLowerCase();
| |
| var is_ie = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
| |
| if(is_ie){
| |
| OldElement.removeNode(true);
| |
| }else{
| |
| if(OldElement.parentNode){document=OldElement.parentNode.removeChild(OldElement);}
| |
| }
| |
| }
| |
|
| |
| // </nowiki></pre></source>
| |