MediaWiki:Gadget-DeluxeSummary.js

Un livre de Wikilivres.

Attention : Depuis MediaWiki 1.18 les pages se terminant avec l'extension .js ou .css sont interprétées comme des pages wiki ! En particulier les modèles (subst ou non) et les liens. Vous devez donc migrer le code source et effectuer vos changements en évitant ces éléments de syntaxe wiki (peu importe leurs emplacements dans le code source : commentaire, chaine) :

  • Double accolades ouvrantes (en particulier avec subst:) : séparer les deux accolades "{"+"{" du reste de la chaine
  • Double crochets ouvrants : même technique de séparation.
  • Signature (tildes ~ multiples) : même technique de séparation.

Note : après avoir enregistré vos préférences, vous devrez attendre que le serveur mette à jour la feuille de style globale avant de 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 ;
  • Konqueror : Cliquez sur Actualiser ou pressez F5 ;
  • Opera : Videz le cache dans Outils → Préférences.
/*
*************************************************************
Gadget ajoutant des boutons pour remplir le résumé d'édition.
*************************************************************
*/
wgfrwikibooks_Gadget_DeluxeSummaryJsVersion = "20211002001";

var deluxe_summary_done = false;

/**
   Ajoute un nouvel élément dans le résumé d'édition.
   Voir [[WB:RD]] pour les raccourcis employés.
*/
function addToSummary(str)
{
    if (deluxe_summary_done)
        document.editform.wpSummary.value += ", ";
    else
    {
        document.editform.wpSummary.value += "[[WL:RD]] : ";
        deluxe_summary_done = true;
    }
    document.editform.wpSummary.value+=str;
}

function DeluxeSummary()
{
    var sumLbl = document.getElementById("wpSummaryLabel");
    if (sumLbl)
    {
        // élargissement boite de résumé
        var sumInput = document.getElementById("wpSummary");
        sumInput.style.width = "90%";

        var summaries = [
            // rubrique
            // [ lien, résumé ]
            // [ lien, résumé, niveau utilisateur ]
            // ------------------------------------
            // A J O U T S
            "Ajout",
            ["ébauche", "+ bandeau ébauche"],
            ["cat", "+ catégorie"],
            ["image", "+ image"],
            ["interwiki", "+ liens interwiki"],
            ["info", "+ informations"],
            // ------------------------------------
            // C O R R E C T I O N S
            "Correction",
            ["interwiki", "! liens interwiki"],
            ["lien int", "! lien interne"],
            ["lien ext", "! lien externe"],
            ["cat", "! catégorie"],
            ["info", "! informations"],
            // ------------------------------------
            // R E T R A I T S
            "Retrait",
            ["image", "- image manquante"],
            ["lien int", "- lien interne"],
            ["lien ext", "- lien externe"],
            ["info", "- catégorie"],
            // ------------------------------------
            // R E M P L A C E M E N T
            "Remplacement",
            ["lien ext -> lien int", "~ lien externe -> interne"],
            ["lien int -> interwiki", "~ lien interne -> interwiki"],
            ["redir", "~ page -> redirection"],
            // ------------------------------------
            // A U T R E S
            //   concernant le contenu de la page
            "Contenu",
            ["création", "Initialisation de la page"],
            ["MeP", "! mise en page"],
            ["ortho/gram", "! orthographe/grammaire"],
            ["retouches", "* diverses retouches"],
            // ------------------------------------
            // O P É R A T I O N S   E T   V O T E S
            //   suppression, fusion, ...
            "Opération",
            ["fusion", "* fusion"],
            ["PàS:conservé", "- bandeau car page conservée"],
            ["Vote", "A voté"],
            ["Réponse", "Réponse"],
            // T R A N S F E R T S
            "Transfert",
            ["pour wikt", "*> pour le Wiktionnaire"],
            ["pour wikisource", "*> pour le Wikisource"],
            // B L A N C H I E M E N T
            //   pour les non-sysops qui ne peuvent pas supprimer des pages
            "Blanchi",
            ["autre...", "RAZ ", 0x40],
            ["vandale", "RAZ vandalisme", 0x40],
            ["copyvio", "RAZ copyvio", 0x40],
            ["spam", "RAZ spam", 0x40],
            ["bac à sable", "RAZ bac à sable", 0x40],
            ["autopromo", "RAZ auto-promotion", 0x40]
            // ------------------------------------
        ];

        var ongdef = ((mw.config.get('wgArticleId')==0)||(!mw.config.get('wgCurRevisionId')))?5/*pour création*/:1/*ajout*/;
        var couleur = (typeof(DeluxeSummaryTabColor)=="undefined")?"Violet":DeluxeSummaryTabColor;
        var onglets = ["div",{"id":"mb0","class":"mb"+couleur},["div"]];
        var contenu = ["div",{"class":"mbContenu"}];
        var onglet = "";
        var rubrique = "";
        var oindex = 1;
        var str = "";
        var n_links = 0; // nombre courant de liens pour la rubrique en cours
        for (var cpt=0; cpt<summaries.length; cpt++)
        {
            const elem = summaries[cpt];
            if (typeof(elem)=="string") // nouvelle rubrique
            {
                // ajouter rubrique précédente
                if (n_links>0) { onglets[2].push(onglet); contenu.push(rubrique); oindex++; }
                // autre rubrique
                onglet = ["div",{"id":"mb0bt"+oindex,"class":"mbBouton"+(oindex==ongdef?"Sel":"")},
                        ["span",{"style":{"cursor":"hand"}},elem]
                    ];
                rubrique = ["div",{"id":"mb0og"+oindex,"class":"mbOnglet","style":
                    (oindex==ongdef?
                        {"display":"block","visibility":"visible"}:
                        {"display":"none","visibility":"hidden"})
                    }];
                n_links = 0; // pas de lien dans la rubrique
            }
            else if (elem.length==2 || userHasLevel(elem[2]))
            {
                n_links++;
                rubrique.push(
                    ["input",{"type":"button","name":"summary"+n_links,
                        "value":elem[0],"title":elem[1],
                        "onclick":function(){ addToSummary(elem[1]);}  }]);
            }
        }
        // ajouter rubrique précédente
        if (n_links>0) { onglets[2].push(onglet); contenu.push(rubrique); }
        onglets.push(contenu);
        setDomAt(sumLbl,0,onglets);
    }
}

$(DeluxeSummary);