Utilisateur:Dr Brains/VerifEval.js

Une page de Wikipédia, l'encyclopédie libre.
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.
/*
== Code JavaScript ==
 
* Licence : Domaine public

{{Boîte déroulante début|titre=Vérification évaluation}}<!--
*/
// --><syntaxhighlight lang=javascript>
//<pre>//<nowiki>

var VerifEval_Adresse = mw.config.get('wgServer') + mw.config.get('wgScript') + "?title=";

var VerifEval_ModeleDefaut = '{{Vérification évaluation\n'
                           + '|page=$1\n'
                           + '|catégorie=$2\n'
                           + '|portail=$3\n'
                           + '|défilant=non\n'
                           + '|hauteur=\n'
                           + '}}\n'
                           + '{{Vérification évaluation/Tableau'
                           + '$1'
                           + '}}\n'
                           + '{{Vérification évaluation fin}}\n'

var VerifEval_DebutModele = '<!-- Ce modèle est créé automatiquement par un robot. VerifEval DEBUT -->\n';

var VerifEval_DebutTableau = '{| class="wikitable centre sortable" width="100%"\n'
                           + '|+ \'\'\'[[:$1|$2]]\'\'\' - $3 articles - Tableau [[Modèle:Vérification évaluation/Documentation|mis à jour]] $4 \n'
                           + '|-\n'
                           + '! Page\n'
                           + '! Évaluation\n'
                           + '! Avancement\n'
                           + '! Importance\n'

var VerifEval_FinModele = '<!-- Ce modèle est créé automatiquement par un robot. VerifEval FIN -->\n';

var VerifEval_ResumeModif = 'Mise à jour du modèle {{Vérification évaluation}}';

// Liste des paramètres Importance
var VerifEval_Importance = new Array("inconnue", "faible", "moyenne", "élevée", "maximum");

// Liste des paramètres Avancement
var VerifEval_Avancement = new Array("inconnu", "B", "A", "ébauche", "AdQ", "BD", "BA");

var VerifEval_StartButton = '<img height="50" width="50" src="http://upload.wikimedia.org/wikipedia/commons/thumb/4/4a/Crystal_Clear_action_exit.svg/50px-Crystal_Clear_action_exit.svg.png" alt="Lancer la mise à jour">';
 
var VerifEval_WorkingButton = '<img height="50" width="50" src="http://upload.wikimedia.org/wikipedia/commons/d/de/Ajax-loader.gif" alt="Mise à jour en cours">';

// ///////////////////////////////////////////////////// FONCTION DE REQUÊTE ///////////////
 
var VerifEval_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)
          VerifEval_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) {
            //Argos42 : pour rendre LiveRC fonctionnel sur chrome
          }
      }
      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( (mw.config.get('wgAction')!="edit")&&(mw.config.get('wgAction')!="submit") ){
     $(VerifEval_makeUpdateLinks);
}

// recherche des modèles {{Vérification évaluation}} de la page et ajout des liens de mise à jour

function VerifEval_makeUpdateLinks(){
     var count = -1;
     var Cadres = document.getElementsByTagName('span');
     for(s=0;s<Cadres.length;s++){
            if( $(Cadres[s]).hasClass('VerifEval') ){          
                  count++
                  Cadres[s].id = 'VerifEval_'+count;
                  var ParamCategorie = Cadres[s].firstChild.innerHTML;
                  var ParamPage = Cadres[s].firstChild.title;
                  var NewButton = '<a id="VerifEvalLink_'+count+'" href="javascript:VerifEval_GetParams('+count+');" title="Catégorie ' + ParamCategorie.replace(/Catégorie:/ig,'') + ' - Page '+ParamPage+'" >'+VerifEval_StartButton+'</a>' ;
                  Cadres[s].innerHTML += NewButton ;
            }
     }
}

var VerifEval_Params = new Object();
var VerifEval_Cats = new Array();
var VerifEval_Pages = new Array();

function VerifEval_GetParams(index){
     var Modele = document.getElementById('VerifEval_'+index);
     if(!Modele) return;
     var Cadre = Modele.firstChild;
     if(!Cadre) return;
     VerifEval_Params.ParamCategorie = Cadre.innerHTML;
     VerifEval_Params.ParamPage = Cadre.title;
     VerifEval_Params.ParamPortail = Cadre.className;
     if(VerifEval_Params.ParamPortail!='') VerifEval_Params.ParamPortail = VerifEval_Params.ParamPortail.replace(/_/g, " ");
     VerifEval_Cats = new Array();
     VerifEval_Pages = new Array();
     for(var a=0,l=VerifEval_Avancement.length;a<l;a++){
          var NewCatAvancement = "Catégorie:Article "+VerifEval_Params.ParamPortail+" d'avancement "+VerifEval_Avancement[a];
          VerifEval_Cats.push(NewCatAvancement);
          var NewPage = VerifEval_Params.ParamPage + "/" + VerifEval_Avancement[a];
          VerifEval_Pages.push(NewPage);
          for(var b=0,m=VerifEval_Importance.length;b<m;b++){
               var NewPage = VerifEval_Params.ParamPage + "/" + VerifEval_Avancement[a] + "/" + VerifEval_Importance[b];
               VerifEval_Pages.push(NewPage);
          }
     }
     VerifEval_Pages.push(VerifEval_Params.ParamPage + "/Sans évaluation");
     VerifEval_OpenMenu(index);
}

function VerifEval_getScreenSize(){
     var HauteurEcran = 0;
     if( typeof( window.innerHeight ) == 'number' ) {
          HauteurEcran = parseInt(window.innerHeight);
     }else if( document.documentElement && document.documentElement.clientHeight ){
          HauteurEcran = parseInt(document.documentElement.clientHeight);
     }else if( document.body && document.body.clientHeight ){
          HauteurEcran = parseInt(document.body.clientHeight);
     }
     var LargeurEcran = 0;
     if( typeof( window.innerWidth ) == 'number' ) {
          LargeurEcran = parseInt(window.innerWidth);
     }else if( document.documentElement && document.documentElement.clientWidth ){
          LargeurEcran = parseInt(document.documentElement.clientWidth);
     }else if( document.body && document.body.clientWidth ){
          LargeurEcran = parseInt(document.body.clientWidth);
     }
     var ScreenSize = new Object();
     ScreenSize.H = HauteurEcran;
     ScreenSize.W = LargeurEcran;
     return ScreenSize;
}

function VerifEval_OpenMenu(index){
    if(document.getElementById('VerifEval_Menu'+index)) return;
     var ScreenSize = VerifEval_getScreenSize();
     var HauteurEcran = ScreenSize.H;
     var LargeurEcran = ScreenSize.W;
     var Menu = document.createElement('div');
     Menu.id='VerifEval_Menu'+index;
     Menu.className = 'VerifEval_Menu';
     Menu.style.position='fixed';
     Menu.style.zIndex= 500;
     Menu.style.padding='5px';
     Menu.style.backgroundColor='white';
     Menu.style.border='3px double black';
     Menu.style.width= 'auto';
     document.body.appendChild(Menu);
     var MenuContent = ''
     + '<fieldset id="OptionsValue" ><legend>Mise à jour des tableaux d\'évaluation</legend>'
     + '<table id="VerifEval_OptionsTable" width="500px"><tr><td valign="middle" align="center">'
     + '<label for="VerifCats">Catégories à vérifier</label>'
     + '</td></tr><tr><td valign="middle" align="center">'
     + '<div style="max-height:250px;overflow-y:auto;">'
     + '<ol id="CatList">$1</ol>'
     + '</div>'
     + '</td></tr><tr><td valign="middle" align="center">'
     + '<label for="UpdatePages">Pages à mettre à jour</label>'
     + '</td></tr><tr><td valign="middle" align="center">'
     + '<div style="max-height:250px;overflow-y:auto;">'
     + '<ol id="PageList">$2</ol>'
     + '</div>'
     + '</td></tr><tr><td valign="middle" align="center">'
     + '<label for="ReferenceProject">Projet de référence</label>'
     + '</td></tr><tr><td valign="middle" align="center">'
     + '<input id="ReferenceProject" type="text" value="'+VerifEval_Params.ParamPortail+'" size="65"/>'
     + '</td></tr></table></fieldset>'
     + '<center id="OptionsButtons" >'
     + '<input type="checkbox" id="Autoconfirm" style="cursor:pointer;" />'
     + '<label for="Autoconfirm">Publier sans confirmation manuelle ?</label>'
     + '&nbsp;&nbsp;'
     + '<input type="checkbox" id="AutoWatch" style="cursor:pointer;" />'
     + '<label for="AutoWatch">Suivre les pages modifiées ?</label>'
     + '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'
     + '<input type="button" style="cursor:pointer;" '
     + ' value="OK" title="Appliquer" '
     + ' onclick="VerifEval_GetOptions('+index+');" onselect="VerifEval_GetOptions('+index+');"/>'
     + '&nbsp;&nbsp;'
     + '<input type="button" style="cursor:pointer;" '
     + ' value="Fermer" title="Fermer le menu" '
     + ' onclick="VerifEval_CloseMenu('+index+');" onselect="VerifEval_CloseMenu('+index+');"/>'
     + '</center>';
     var CatsText = "";
     var Cats = new Array();
     Cats.push(VerifEval_Params.ParamCategorie);  
     Cats = Cats.concat(VerifEval_Cats);   
     for(var a=0,l=Cats.length;a<l;a++){
          CatsText += '<li><input type="text" class="VerifCats" value="'+Cats[a]+'" size="65" /></li>';
     }
     var PagesText = "";
     var Pages = new Array();
     Pages.push(VerifEval_Params.ParamPage);
     Pages = Pages.concat(VerifEval_Pages);   
     for(var a=0,l=Pages.length;a<l;a++){
          PagesText += '<li><input type="text" class="UpdatePages" value="'+Pages[a]+'" size="65" /></li>';
     }  
     MenuContent = MenuContent.split("$1").join(CatsText).split("$2").join(PagesText);
     Menu.innerHTML = MenuContent;
     PositionGauche = parseInt((LargeurEcran-Menu.clientWidth)/2) ;
     PositionHaut = parseInt((HauteurEcran-Menu.clientHeight)/3) ;
     Menu.style.left=PositionGauche + 'px';
     Menu.style.top=PositionHaut + 'px'; 
     Menu.getElementsByTagName('input')[0].focus();
}
 
 
function VerifEval_CloseMenu(index){
     var Menu = document.getElementById('VerifEval_Menu'+index);
     if(Menu) Menu.parentNode.removeChild(Menu);
}

function VerifEval_GetOptions(index){
     var Menu = document.getElementById('VerifEval_Menu'+index);
     var Modele = document.getElementById('VerifEval_'+index);
     if(!Modele || !Menu) return;
     VerifEval_Cats = new Array();
     var CatList = document.getElementById('CatList');
     var CatListInputs = CatList.getElementsByTagName('input');   
     for(var a=0,l=CatListInputs.length;a<l;a++){
          var CatName = CatListInputs[a].value;
          if(a==0) VerifEval_Params.ParamCategorie = CatName;
          else VerifEval_Cats.push(CatName);
     }  
     
     VerifEval_Pages = new Array();
     var PageList = document.getElementById('PageList');
     var PageListInputs = PageList.getElementsByTagName('input');   
     for(var a=0,l=PageListInputs.length;a<l;a++){
          var PageName = PageListInputs[a].value;
          if(a==0) VerifEval_Params.ParamPage = PageName;
          else VerifEval_Pages.push(PageName);
     } 
     VerifEval_CloseMenu(index);
     Modele.innerHTML += '<br /><span id="WorkingFunction" ></span><br /><span id="WorkingPage" ></span>';
     VerifEval_CheckMainCategory();
     var Lien = document.getElementById('VerifEvalLink_'+index)
     if(Lien){
          Lien.innerHTML = VerifEval_WorkingButton ;
          Lien.title = "Arrêter la mise à jour" ;
          Lien.href = "javascript:window.location.reload();";
          Lien.blur();
     }
}

// ///////////////////////////////////////////////////// REQUÊTE PAGES DE LA CATÉGORIE /////////////////////////
 
var VerifEval_APILimit = ( (mw.config.get('wgUserGroups').indexOf("sysop")!=-1)||(mw.config.get('wgUserGroups').indexOf("bot")!=-1) ? 4999 : 499 );

var VerifEval_List = new Array();

function VerifEval_CheckMainCategory(Args){
      if(!Args) Args = new Object();
      if(!Args.ParamContinue) Args.ParamContinue='';
      var Cat = VerifEval_Params.ParamCategorie;
      var URL = mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php?format=xml&action=query&list=categorymembers'
                + '&cmlimit='+VerifEval_APILimit
                + '&cmtitle=' + encodeURIComponent(Cat) 
                + Args.ParamContinue
      document.getElementById('WorkingFunction').innerHTML = "Listage des pages";
      document.getElementById('WorkingPage').innerHTML = VerifEval_Params.ParamCategorie+"<br />"+URL;
      VerifEval_ajax.http({ url: URL,
                            onSuccess: VerifEval_CheckMainCategoryDone,
                            args:Args
      });
}


function VerifEval_CheckMainCategoryDone(Req, data){
      var Args = data.args;
      if(!Args) Args = new Object();
      var ObjetXML = Req.responseXML; 
      var Pages = ObjetXML.getElementsByTagName('cm');
      for(a=0;a<Pages.length;a++){
            var TitrePage = Pages[a].getAttribute('title');
            var NS = Pages[a].getAttribute('ns');
            if(NS==="0"){
                  VerifEval_List[TitrePage] = new Array();
            }
      }
      var AutreRequeteNecessaire = ObjetXML.getElementsByTagName('query-continue')[0];
      if(AutreRequeteNecessaire){
            Args.ParamContinue = '&cmcontinue=' + encodeURIComponent(AutreRequeteNecessaire.firstChild.getAttribute('cmcontinue'));
            VerifEval_CheckMainCategory(Args);
      }else{
            VerifEval_CheckEvalCategory();
      }
}


function VerifEval_CheckEvalCategory(Args){
      if(!Args) Args = new Object();
      if(!Args.index) Args.index = 0;
      Args.ParamCategorie = VerifEval_Cats[Args.index];
      if(!Args.ParamCategorie){
            VerifEval_GetEvals();
            return;
      }
      if(!Args.ParamContinue) Args.ParamContinue='';
      var Cat = Args.ParamCategorie;
      var URL = mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php?format=xml&action=query&list=categorymembers'
              + '&cmlimit=' + VerifEval_APILimit
              + '&cmtitle=' + encodeURIComponent(Cat) 
              + Args.ParamContinue
      document.getElementById('WorkingFunction').innerHTML = "Listage des pages évaluées";
      document.getElementById('WorkingPage').innerHTML = Args.ParamCategorie+"<br />"+URL;
      VerifEval_ajax.http({ url: URL,
                            onSuccess: VerifEval_CheckEvalCategoryDone,
                            args:Args
      });
}

function VerifEval_CheckEvalCategoryDone(Req, data){
      var Args = data.args;
      var Cat = Args.ParamCategorie;
      var index = Args.index;
      var ObjetXML = Req.responseXML; 
      var Pages = ObjetXML.getElementsByTagName('cm');
      for(a=0;a<Pages.length;a++){
            var TitrePage = Pages[a].getAttribute('title').split(mw.config.get('wgFormattedNamespaces')[1]+":").join("");
            var NS = Pages[a].getAttribute('ns');
            if(NS==="0" || NS==="1"){
                  if(!VerifEval_List[TitrePage]) VerifEval_List[TitrePage] = new Array();
                  VerifEval_List[TitrePage].push(Cat);
            }
      }
      var AutreRequeteNecessaire = ObjetXML.getElementsByTagName('query-continue')[0];
      if(AutreRequeteNecessaire){
            Args.ParamContinue = '&cmcontinue=' + encodeURIComponent(AutreRequeteNecessaire.firstChild.getAttribute('cmcontinue'));
            VerifEval_CheckEvalCategory(Args);
      }else{
            Args.index = (index+1);
            Args.ParamContinue='';
            VerifEval_CheckEvalCategory(Args);
      }
}

function VerifEval_GetEvals(){
      var AllPages = new Array();
      AllPages["Titre"] = new Array();
      AllPages["Importance"] = new Array();
      AllPages["Avancement"] = new Array();
      for(var page in VerifEval_List){
            var ThisPageCats = VerifEval_List[page];
            if(!ThisPageCats) continue;
            var Index = AllPages["Titre"].length;
            AllPages["Titre"][Index] = page;
            for(var a=0,l=VerifEval_Importance.length;a<l;a++){
                 var NewCatImportance = ",Catégorie:Article "+VerifEval_Params.ParamPortail+" d'importance "+VerifEval_Importance[a]+",";
                 if((","+ThisPageCats.toString()+",").indexOf(NewCatImportance)!=-1){
                      AllPages["Importance"][Index] =  VerifEval_Importance[a];
                 }
            }
            for(var a=0,l=VerifEval_Avancement.length;a<l;a++){
                 var NewCatAvancement = ",Catégorie:Article "+VerifEval_Params.ParamPortail+" d'avancement "+VerifEval_Avancement[a]+",";
                 if((","+ThisPageCats.toString()+",").indexOf(NewCatAvancement)!=-1){
                      AllPages["Avancement"][Index] =  VerifEval_Avancement[a];
                 }
            }
            if(!AllPages["Importance"][Index]) AllPages["Importance"][Index] = "";
            if(!AllPages["Avancement"][Index])  AllPages["Avancement"][Index] = "";
      }
      VerifEval_CreateTables(AllPages);
}

// *************************************************************************************************************************************************
function VerifEval_CreateTables(AllPages){
      var Tables = new Object();
      for(var a=0,l=VerifEval_Pages.length;a<l;a++){
            var Page = VerifEval_Pages[a];
            Tables[Page] = new Array();
            for(var a=0,l=AllPages["Titre"].length;a<l;a++){
                  var ThisPage = AllPages["Titre"][a];
                  if(!ThisPage) continue;
                  var Avancement = AllPages["Avancement"][a];
                  var Importance = AllPages["Importance"][a];
                  var Evaluation = "rouge|non";
                  if(Avancement && Importance) Evaluation = "green|oui";
                  var ThisPageName = VerifEval_Params.ParamPage+"/"+Avancement+"/"+Importance;
                  if(ThisPageName!=Page) ThisPageName = VerifEval_Params.ParamPage+"/"+Importance+"/"+Avancement;
                  if(ThisPageName!=Page) ThisPageName = VerifEval_Params.ParamPage+"/"+Importance;
                  if(ThisPageName!=Page) ThisPageName = VerifEval_Params.ParamPage+"/"+Avancement;
                  if(ThisPageName!=Page) ThisPageName = VerifEval_Params.ParamPage+"/Sans évaluation";
                  if(ThisPageName==Page){
                        var Ligne = '|-\n'
                                  + '| [[' + ThisPage + ']] - ([['+mw.config.get('wgFormattedNamespaces')[1]+':'+ThisPage+'|d]])\n'
                                  + '| \'\'\'{{coloré|'+Evaluation+'}}\'\'\'\n'
                                  + '| ' + Avancement + '\n'
                                  + '| ' + Importance + '\n'
                        Tables[Page].push(Ligne);
                  }
            }
      }
      VerifEval_CreateMainTable(AllPages, Tables);
}

function VerifEval_CreateMainTable(AllPages, Tables){
      var MainTable = VerifEval_ModeleDefaut;
      var Params = new Array();
      for(var Page in Table){
            var TableLines = Table[Page];
            if(Table[Page]) continue; 
            var Count = TableLines.length;
            var param = -1
            for(var a=0,l=VerifEval_Avancement.length;a<l;a++){
                  var NewCatAvancement = "Catégorie:Article "+VerifEval_Params.ParamPortail+" d'avancement "+VerifEval_Avancement[a];
                  var NewPage = VerifEval_Params.ParamPage + "/" + VerifEval_Avancement[a];
                  if(NewPage==Page){
                        param = ((a+1)*6);
                  }else{
                        for(var b=0,m=VerifEval_Importance.length;b<m;b++){
                              var NewPage = VerifEval_Params.ParamPage + "/" + VerifEval_Avancement[a] + "/" + VerifEval_Importance[b];
                              if(NewPage==Page) param = ((a*6)+b);
                        }
                  }
            }
            if(param==-1){
                  for(var b=0,m=VerifEval_Importance.length;b<m;b++){
                        var NewPage = VerifEval_Params.ParamPage + VerifEval_Importance[b];
                        if(NewPage==Page) param = (43+b);
                  }
            }
            if(param==-1) param = 50;
            Params[param] = "| " + param + "=[["+Page+"|"+Count+"]]\n";
      }
      Params[48] = "| 48 = " + (AllPages.length - Count);
      Params[49] = "| 49 = ~~"+"~~"+"~";
      Params[51] = "| 50 = " + VerifEval_Params.ParamPortail;

      MainTable = MainTable.split("$1").join(Params.join(""));

/*
{{{51}}} = Nom du projet
{{{1}}} = AdQ + maximun
{{{2}}} = AdQ + élevée
{{{3}}} = AdQ + moyenne
{{{4}}} = AdQ + faible
{{{5}}} = AdQ + inconnue
{{{6}}} = Total AdQ
{{{7}}} = BA + maximun
{{{8}}} = BA + élevée
{{{9}}} = BA + moyenne
{{{10}}} = BA + faible
{{{11}}} = BA + inconnue
{{{12}}} = Total BA
{{{13}}} = A + maximun
{{{14}}} = A + élevée
{{{15}}} = A + moyenne
{{{16}}} = A + faible
{{{17}}} = A + inconnue
{{{18}}} = Total A
{{{19}}} = B + maximun
{{{20}}} = B + élevée
{{{21}}} = B + moyenne
{{{22}}} = B + faible
{{{23}}} = B + inconnue
{{{24}}} = Total B
{{{25}}} = BD + maximun
{{{26}}} = BD + élevée
{{{27}}} = BD + moyenne
{{{28}}} = BD + faible
{{{29}}} = BD + inconnue
{{{30}}} = Total BD
{{{31}}} = ÉB + maximun
{{{32}}} = ÉB + élevée
{{{33}}} = ÉB + moyenne
{{{34}}} = ÉB + faible
{{{35}}} = ÉB + inconnue
{{{36}}} = Total ÉB
{{{37}}} = ? + maximun
{{{38}}} = ? + élevée
{{{39}}} = ? + moyenne
{{{40}}} = ? + faible
{{{41}}} = ? + inconnue
{{{42}}} = Total ?
{{{43}}} = Total maximum
{{{44}}} = Total élevée
{{{45}}} = Total moyenne
{{{46}}} = Total faible
{{{47}}} = Total inconnue
{{{48}}} = Total évalué
{{{49}}} = Date
{{{50}}} = Total non évalué
*/














}

// édition de la page : cherche la présence d'un tableau précédent, crée un tableau et remplace le tableau existant

function  VerifEval_EditPage(Req, data){
      var VerifEvalTable = data.table;
      while(document.body.firstChild){document.body.removeChild(document.body.firstChild);} 
      document.body.innerHTML = Req.responseText;

      var NouveauModele = VerifEval_ModeleDefaut;
      var ParamPortail = VerifEval_Params.ParamPortail.replace(/ /,"_");
      NouveauModele = NouveauModele.split('$1').join(VerifEval_Params.ParamPage);
      NouveauModele = NouveauModele.split('$2').join(VerifEval_Params.ParamCategorie);
      NouveauModele = NouveauModele.split('$3').join(ParamPortail);

      var NouveauTableau = VerifEval_DebutModele + VerifEval_DebutTableau;

      var Aujourdhui = new Date();
      var Minutes   = Aujourdhui.getMinutes()
      if(Minutes<10){ var ZeroMinutes = "0" ; }else{ var ZeroMinutes = "";}
      var Heures   = Aujourdhui.getHours()
      if(Heures<10){ var ZeroHeures = "0" ; }else{ var ZeroHeures = "";}
      var Jour   = Aujourdhui.getDate();
      if(Jour<10){ var ZeroJour = "0" ; }else{ var ZeroJour = "";}
      var Mois = Aujourdhui.getMonth() + 1;
      if(Mois<10){ var ZeroMois = "0" ; }else{ var ZeroMois = "";}
      var Annee  = Aujourdhui.getYear();
      if (Annee < 2000){
            Annee = Annee + 1900;
      }
      var VerifEval_miseAjour = 'le '+ZeroJour+Jour+'/'+ZeroMois+Mois+'/'+Annee+' à '+ZeroHeures+Heures+':'+ZeroMinutes+Minutes;

      NouveauTableau = NouveauTableau.split('$1').join(VerifEval_Params.ParamCategorie);
      NouveauTableau = NouveauTableau.split('$2').join(VerifEval_Params.ParamCategorie);
      NouveauTableau = NouveauTableau.split('$3').join(VerifEvalTable.length);
      NouveauTableau = NouveauTableau.split('$4').join(VerifEval_miseAjour);

      for(a=0;a<VerifEvalTable.length;a++){
            NouveauTableau += VerifEvalTable[a];
      }
      NouveauTableau += '|-\n|}' + VerifEval_FinModele;

      var ContenuPage = document.getElementById("wpTextbox1").value;
      var AncienResumeModif = document.editform.wpSummary.value;

      if( (ContenuPage.indexOf(VerifEval_DebutModele)!=-1)&&(ContenuPage.indexOf(VerifEval_FinModele)!=-1) ){
// ----------------- Déja le modèle : remplacement
            var debutTexte = ContenuPage.substring(0, ContenuPage.indexOf(VerifEval_DebutModele));
            var AncienModele = ContenuPage.substring(0, ContenuPage.indexOf(VerifEval_FinModele)) + VerifEval_FinModele;
            AncienModele = AncienModele.replace(debutTexte, "");       
            var finTexte = ContenuPage.split(debutTexte).join('').split(AncienModele).join('');
            var TexteFinal = debutTexte + NouveauTableau + finTexte;
      }else{
// ------------------------------------------------Pas de modèle : ajout modèle
            var TexteFinal = NouveauModele + NouveauTableau + VerifEval_ModeleDefautFin + ContenuPage;
      }

// -----------------------------------------------------------------------------------------------------------------------
      document.getElementById ("wpTextbox1").value = TexteFinal ;
      document.editform.wpSummary.value = AncienResumeModif + VerifEval_ResumeModif ;
      var SurEtCertain = confirm('Sauvegarder la modification ?');
      if(SurEtCertain) document.editform.submit();
}

// </nowiki></pre></syntaxhighlight>{{Boîte déroulante fin}}