MediaWiki:Gadget-ListeEditions.js

La bibliothèque libre.

Note : après avoir enregistré 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 pressez Ctrl-F5 ou Ctrl-R (⌘-R sur un Mac) ;
  • Google Chrome : Appuyez sur Ctrl-Maj-R (⌘-Shift-R sur un Mac) ;
  • Internet Explorer : Maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5 ;
  • Opera : Allez dans Menu → Settings (Opera → Préférences sur un Mac) et ensuite à Confidentialité & sécurité → Effacer les données d'exploration → Images et fichiers en cache.
/**********************
 * auteur : Zaran
 *
 * Futur:
 *
 * 1) on peut déterminer dans une page Auteur quelles sont tous les pages
 * pointant vers main qui sont des pages d'homonymie, rendant inutile le
 * <span class="lien-oeuvre">, par exemple via
 * http://fr.wikisource.org/w/api.php?action=query&prop=templates&titles=Premier%20Alcibiade|Charmide|Second%20Alcibiade
 * ou http://fr.wikisource.org/w/api.php?action=query&prop=categories&titles=Premier%20Alcibiade|Charmide|Second%20Alcibiade
 * en catégorisant les pages d'homonymies via le modèle éditions
 *
 **********************/

jQuery( document ).ready( function( $ ) {
  $(".lien-oeuvre").each(function(){
    var addr = $(this).find("a").attr("href").split("/").slice(2).join("/");
    var scroll = $("<span class='liste-oeuvre derouler'> [+]</span>");
    scroll.data("addr",addr);
    scroll.data("cached",false);
    $(this).after(scroll);
  });
 
  $(".liste-oeuvre").click(function(){
    if ($(this).hasClass("derouler")){
      if ($(this).data("cached")){
        $(this).parent().find(".liste-editions").css("display","");
      }
      else{
       var $node = $(this);
       $node.parent().append($("<div class='liste-editions'></div>"));
       var addr = $node.data("addr");
       var content = $("<span />");
       content.load("/w/index.php?title=" + addr + "&action=render", function() {
           if (content.find("*").filter('#homonymie-editions, #homonymie-traductions').length) {
               content = content.find("*").filter("ul:first");
               $node.parent().find('*').filter('.liste-editions').append(content);
           }
       });
       $(this).data("cached",true);
      }
      $(this).removeClass("derouler");
      $(this).text(" [–]");
    }
    else {
      $(this).parent().find(".liste-editions").css("display","none");
      $(this).addClass("derouler");
      $(this).text(" [+]");
    }
  });
 
});