MediaWiki:Gadget-AjaxPatrol.js

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

  • Firefox / Safari : maintenez la touche Maj (Shift) en cliquant sur le bouton Actualiser ou appuyez sur Ctrl + F5 ou Ctrl + R (⌘ + R sur un Mac).
  • Google Chrome : appuyez sur Ctrl + Maj + R (⌘ + Shift + R sur un Mac).
  • Internet Explorer / Edge : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl + F5.
  • Opera : appuyez sur Ctrl + F5.
// Marquer comme patrouillé en mode asynchrone
// Auteur : DavidL

/*
  Erreur lors du marquage comme patrouillé.
  @param code Code d'erreur (<0 si non HTTP)
  @param message Message d'erreur optionnel.
*/
function patrol_error(code, message, olink)
{
  if (code>=0) alert("Erreur HTTP "+code+"\n"+message);
  else if (message!=null) alert("Échec du marquage comme patrouillé :\n"+message);
  else alert("Échec du marquage comme patrouillé.");
}

/*
  Pas d'erreur HTTP lors du marquage comme patrouillé.
  @param text Contenu de la page à vérifier.
*/
function patrol_ok(text, olink)
{
  if (text.indexOf(
    //" a été marquée comme patrouillée."
    " a été marquée comme relue."
    )<0) patrol_error(-1,null);
  else removePatrolLinks(olink);
}

/*
  Supprimer les liens "Marqué comme patrouillé" une fois patrouillé.
*/
function removePatrolLinks(myself)
{
  var links = getElementsByClass("patrollink");
  for(var k=0;k<links.length;k++)
  {
    if (myself != links[k])
      links[k].parentNode.removeChild(links[k]);
  }
  myself.parentNode.removeChild(myself);
}

/*
  Remplacer les liens "Marqué comme patrouillé" par un appel asynchrone (AJAX).
*/
function asyncPatrolLink()
{
  var links = getElementsByClass("patrollink");
  if (links==null) return;
  for(var k=0;k<links.length;k++)
  {
    var orig_link = links[k];
    var alink = getFirstElement(orig_link,"a");
	href = alink.getAttribute("href");
	alink.setAttribute("href","#");
        alink.setAttribute("title","Marquer comme patrouillé, mode asynchrone");
	alink.onclick = function(){async_call(href, patrol_ok, patrol_error, orig_link);return false;};
  }
}

$(asyncPatrolLink);