Communauté  • Livre d'or
Chats noirs.jpg Actualités, astuces, interview... Venez lire la gazette de ce printemps de Vikidia ! DessinInterview.png

Utilisateur:Petit Chaton/common.js

Aller à la navigation Aller à la recherche

Note : après avoir enregistré tes préférences, tu devras forcer le rechargement complet du cache de ton navigateur pour voir les changements. Mozilla Firefox / Safari : maintiens la touche Majuscule (Shift) en cliquant sur le bouton Actualiser (Reload) ou presse Maj-Ctrl-R (Maj-Cmd-R sur Apple Mac) ; Internet Explorer / Opera : maintiens la touche Ctrl en cliquant sur le bouton Actualiser ou presse Ctrl-F5.

$('#n-Identifier-un-animal').remove();
$('#n-Pages-par-th.C3.A8mes').remove();
$('#n-Banque-d.E2.80.99images').remove();
mw.util.addPortletLink('p-Navigation', '/wiki/Vikidia:Boîte_à_idées', 'Boîte à idées');
mw.util.addPortletLink('p-Navigation', '/wiki/Vikidia:Autopatrol', 'Explications autopatrol');
mw.util.addPortletLink('p-Navigation','/wiki/Utilisatrice:KatLyon','Marraine aide moi stp');
mw.util.addPortletLink( 'p-personal', '/wiki/Vikidia:Coin des relecteurs', 'Coin des relecteurs' );
mw.util.addPortletLink( 'p-personal', '/wiki/Utilisateur:Chaton2014/Bac à sable', 'Bac à sable', null, null, null, '#pt-preferences' );
var RevertDiffParams = new Object();
 (common.js de Eliastik possiblité de reprendre le code :https://www.pokepedia.fr/Utilisateur:Eliastik/common.js)

//////////////////////ZONE PERSONNALISABLE//////////////////////
var mrTempsRefresh = 5; // Le nombre de secondes avant de recharger la page des Modifications récentes
var apBackgroundColorContrast = "#1111FF"; // le code de la couleur de l'arrière-plan
var apColorTextContrast = "#11FFFF"; // le code de la couleur des textes
var apColorLinkContrast = "#7288D4"; // couleur des liens
var apColorLinkRedContrast = "#FF1111"; // le code de la couleur des liens rouges
/////////////////FIN DE LA ZONE PERSONNALISABLE/////////////////

// Fonctions de cookies - extrait du MediaWiki:Common.js de Wikipédia
window.setCookie = function ( nom, valeur, duree ) {
    var expDate = new Date();
    expDate.setTime(expDate.getTime() + ( duree * 24 * 60 * 60 * 1000));
    document.cookie = nom + "=" + escape(valeur) + ";expires=" + expDate.toGMTString() + ";path=/";
};
window.getCookieVal = function ( name ) {
    var cookiePos = document.cookie.indexOf(name + "=");
    var cookieValue = false;
    if (cookiePos > -1) {
        cookiePos += name.length + 1;
        var endPos = document.cookie.indexOf(";", cookiePos);
        if (endPos > -1) {
            cookieValue = document.cookie.substring(cookiePos, endPos);
        } else {
            cookieValue = document.cookie.substring(cookiePos);
        }
    }
    return cookieValue;
};
window.eraseCookie = function(name) {
    window.setCookie(name, "", -1);
};

$(document).ready(function() {
    // assombrir la page - retient le choix - crée un élément dans la liste des outils personnels
    var elAssomPage = document.createElement("li");
    elAssomPage.setAttribute("id", "panel-OP-assombrirPage");
    elAssomPage.innerHTML = '<button id="assombrirPageOP" style="font-size: 10pt; padding:0; cursor:pointer; display:inline;">Assombrir la page</button>';

    // la fonction d'assombrissement de la page
    function assombrirPage(type) {
       if(type == "assombrir") {
            window.setCookie("cjs_assombrirPage", "Oui", 3600); // crée le cookie
            elAssomPage.innerHTML = '<button id="eclaircirPageOP" style="font-size: 10pt; padding:0; cursor:pointer; display:inline;">Éclaircir la page</button>';
            $("#eclaircirPageOP").click(function(){
                assombrirPage("eclaircir");
            });
            // on boucle tous les éléments pour leur donner un style sombre avec la fonction restyleElement (voir plus bas)
            restyleElement("div", apBackgroundColorContrast, apColorTextContrast);
            restyleElement("a", null, apColorLinkContrast);
            restyleElement("span", apBackgroundColorContrast, apColorTextContrast);
            restyleElement("input", apBackgroundColorContrast, apColorTextContrast);
            restyleElement("textarea", apBackgroundColorContrast, apColorTextContrast);
            restyleElement("select", "grey", apColorTextContrast);
            restyleElement("pre", apBackgroundColorContrast, apColorTextContrast);
            restyleElement("table", apBackgroundColorContrast, apColorTextContrast);
            restyleElement("td", apBackgroundColorContrast, apColorTextContrast);
            restyleElement("th", apBackgroundColorContrast, apColorTextContrast);
            restyleElement("h1", null, apColorTextContrast);
            restyleElement("h2", null, apColorTextContrast);
            restyleElement("h3", null, apColorTextContrast);
            restyleElement("h4", null, apColorTextContrast);
            restyleElement("h5", null, apColorTextContrast);
            restyleElement("h6", null, apColorTextContrast);
            restyleElement("code", apBackgroundColorContrast, apColorTextContrast);
            restyleElement("del", "red", apColorTextContrast); // élément affiché lorsque l'on compare des modifs - éléments modifiés/effacés
            restyleElement("ins", "green", apColorTextContrast); // élément affiché lorsque l'on compare des modifs - éléments ajoutés
            restyleElement("dd", apBackgroundColorContrast, apColorTextContrast); // quotes
            restyleElement("dl", apBackgroundColorContrast, apColorTextContrast); // quotes
            restyleElement("fieldset", apBackgroundColorContrast, apColorTextContrast); // mods. récentes
            restyleElement("legend", apBackgroundColorContrast, apColorTextContrast); // mods. récentes
            restyleElement("tt", apBackgroundColorContrast, apColorTextContrast);
            restyleElement("ul", apBackgroundColorContrast, apColorTextContrast);
            restyleElement("li", apBackgroundColorContrast, apColorTextContrast);
            restyleElement("kbd", apBackgroundColorContrast, apColorTextContrast); // raccourcis clavier
            restyleElement("caption", apBackgroundColorContrast, apColorTextContrast);
            // style pour la page et le contenu
            document.body.style.backgroundColor = apBackgroundColorContrast;
            document.body.style.color = apColorTextContrast;
            document.getElementById("content").style.backgroundColor = apBackgroundColorContrast;
            document.getElementById("content").style.color = apColorTextContrast;
            // autres re-stylage d'éléments avec des sélecteurs plus complexes (jQuery)
            $( 'div.vectorTabs span, #p-cactions, div.menu a' ).css( 'background', apBackgroundColorContrast ); // les onglets actifs
            $( 'div.vectorTabs li.selected span, div.menu li.selected a' ).css( 'background', 'lightgrey' ); // les onglets actifs
            $( 'div.vectorTabs li.new a' ).css( 'color', apColorLinkRedContrast ); // liens rouges onglets
            $( 'div#p-logo' ).css( 'background', 'grey' ); // logo
            $( 'div#p-logo' ).css( 'border-radius', '15px' ); // logo
            $( ':button, input[type=submit]' ).css( 'background', apBackgroundColorContrast ); // les boutons
            $( ':button, input[type=submit]' ).css( 'color', apColorTextContrast ); // les boutons
            $("#ca-ve-edit").click(function() { assombrirPage("assombrir") }); // lors du clic sur "Modifier", on re-exécute la fonction
            $(".mw-editsection-visualeditor").click(function() { assombrirPage("assombrir") }); // pareil que la ligne précédente mais pour les sections
            // Liens rouges
            var aNewPageNb = document.getElementsByClassName("new");
              for (var i=0, j=aNewPageNb.length; i<j; i++) {
                  aNewPageNb[i].style.color = apColorLinkRedContrast;
              }
        }
        // on vérifie le cookie
        else if(type == "cookieVerif" && window.getCookieVal("cjs_assombrirPage") == "Oui") {
            assombrirPage("assombrir"); // on réexecute la fonction
        }
        // si on clique sur "éclaircir la page"
        else if(type == "eclaircir") {
            // on demande à l'utilisateur si il veut continuer
            if(confirm("Cela rechargera la page. Continuer ?")) {
                window.eraseCookie("cjs_assombrirPage"); // on supprime le cookie
                location.reload(); // on reload la page
            }
        }
    }

    // fonction pour restyler en masse un type d'éléments (via une boucle)
    function restyleElement(type, backgroundColorElem, colorElem) {
          var nbElements = document.getElementsByTagName(type);
          if(nbElements.length > 0) { // si il y a bien ce type d'éléments sur la page
                for (var i=0, j=nbElements.length; i<j; i++)  { // on boucle les éléments et on les restyle
                    if(backgroundColorElem !== null) { // si le paramètre est bien renseigné
                       nbElements[i].style.backgroundColor = backgroundColorElem; // nouvel arrière-plan
                    }
                    if(colorElem !== null) { // si le paramètre est bien renseigné
                        nbElements[i].style.color = colorElem; // nouvelle couleur de texte
                    }
                }
            return true; // ça s'est bien passé, on retourne true
         }
         else { // si il n'y a pas ce type d'éléments sur la page
           return false; // on retourne false
         }
    }

    function execReady() {
        if (document.body) return assombrirPage("cookieVerif");
        timeOutAP = setTimeout(execReady, 50);
    }

    execReady();

    var intervalRefreshMR = null;
    var NomPage = document.location.href.substring(document.location.href.lastIndexOf( "/" )+1); // ne pas modifier ! Nom de la page visitée
    var dateObj = new Date(); // nouvel objet date
    var fullHour = dateObj.getHours() + ":" + dateObj.getMinutes() + ":" + dateObj.getSeconds(); // heure
    var fullDate = dateObj.getDate() + "/" + (dateObj.getMonth() + 1) + "/" + dateObj.getFullYear(); // date

    // Crée une liste d'outils personnels
    var elAP = document.createElement("div");
    elAP.setAttribute("class", "portal");
    elAP.setAttribute("id", "panel-outils-personnels");
    elAP.innerHTML = '<h3>Outils personnalisés</h3><div class="body"><ul id="outilsPersoList"></ul></div>';
    document.getElementById("mw-panel").appendChild(elAP);

    // append assombrir la page - retient le choix - crée un élément dans la liste des outils personnels
    document.getElementById("outilsPersoList").appendChild(elAssomPage);

    // eclaircit la page lors du clic sur le lien prévu pour cela
    $("#eclaircirPageOP").click(function(){
        assombrirPage("eclaircir");
    });

    // assombrit la page lors du clic sur le lien prévu pour cela
    $("#assombrirPageOP").click(function(){
        assombrirPage("assombrir");
    });

    if(NomPage.indexOf("Sp%C3%A9cial:Modifications_r%C3%A9centes") != -1 || NomPage.indexOf("Special:RecentChanges") != -1) {
        /* Rafraîchissement des Modifications récentes - crée un élément indiquant cela dans les Modifications récentes en dessous du titre
               Possibilité de stopper cette fonctionnalité avec un lien + un cookie */
        elIndicRefresh = document.createElement("div");
        elIndicRefresh.style.cssText = "margin: 0 0 18px;padding: 0.5em;border: 1px solid #ddddf7;border-left: 10px solid #ddddf7;font-size: 10.5pt;font-weight: bold;";
        elIndicRefresh.setAttribute("id", "labelModRecR");
        document.getElementById("contentSub").style.margin = "0";
        document.getElementById("contentSub").appendChild(elIndicRefresh);
    }

    // fonction qui active le refresh auto
    refreshPage = function() {
        if(NomPage.indexOf("Sp%C3%A9cial:Modifications_r%C3%A9centes") != -1 || NomPage.indexOf("Special:RecentChanges") != -1) {
            elIndicRefresh.innerHTML = 'Les modifications récentes sont rechargées toutes les '+ mrTempsRefresh +' secondes (via votre common.js). <button onclick="desactiverRefresh()" style="color:dodgerblue; padding:0; cursor:pointer; display:inline;">Désactiver cette fonctionnalité</button>.<ul><li>Dernier rafraîchissement : le '+ fullDate +' à '+ fullHour + '</li></ul>';
            intervalRefreshMR = setInterval(function(){ location.reload() }, mrTempsRefresh * 1000);
            window.setCookie("cjs_stopRefresh", "Non", 3600);

            $("#disableRefreshOP").click(function(){
                desactiverRefresh();
            })
        }
    };

    // fonction qui désactive le refresh auto
    desactiverRefresh = function() {
        if(NomPage.indexOf("Sp%C3%A9cial:Modifications_r%C3%A9centes") != -1 || NomPage.indexOf("Special:RecentChanges") != -1) {
            window.setCookie("cjs_stopRefresh", "Oui", 3600);
            elIndicRefresh.innerHTML = 'Les modifications récentes sont censées être rechargées toutes les '+ mrTempsRefresh +' secondes (via votre common.js), mais vous avez désactivé cette fonctionnalité. <button onclick="refreshPage()" style="color:dodgerblue; padding:0; cursor:pointer; display:inline;">Réactiver cette fonctionnalité</button>.<ul><li>Dernier rafraîchissement : le '+ fullDate +' à '+ fullHour + '</li></ul>';
            clearInterval(intervalRefreshMR);

            $("#enableRefreshOP").click(function(){
                refreshPage();
            })
        }
    };

    // on lit le cookie
    if(window.getCookieVal("cjs_stopRefresh") !== "Oui") {
        refreshPage();
    }
    else {
        desactiverRefresh();
    }
});
RevertDiffParams.Text = new Object();
RevertDiffParams.Text.Annul = "Restaurer";
RevertDiffParams.Text.AnnulResume = 'Restauration';
RevertDiffParams.Text.Message = "Message";
RevertDiffParams.Text.MessageAlert = 'Raison:';
RevertDiffParams.Text.Revert = "Révoquer";
RevertDiffParams.Text.RevertResume = 'Révocation des modifications de [[Special:Contributions/$2|$2]], retour à la version de [[Special:Contributions/$1|$1]]';
RevertDiffParams.Text.Warn = "Avertir";
 
 
RevertDiffParams.Warn = [ 
  {urlparam:"warn=01", text:"Averto-0",   template:'{{Averto|niveau=0|page=}}[[Utilisateur:Chaton2014|<span style="text-Turquoise:pink 0.1em 0.1em 0.1em">Chaton2014</span>]] ([[Discussion utilisateur:Chaton2014|<small><span style="color: black;">Parlons</span></small>]]) 5 juillet 2023 à 10:18 (CEST)'},
  {urlparam:"warn=10", text:"nouveau",      template:'{{Bienvenue}}[[Utilisateur:Chaton2014|<span style="text-Turquoise:pink 0.1em 0.1em 0.1em">Chaton2014</span>]] ([[Discussion utilisateur:Chaton2014|<small><span style="color: black;">Parlons</span></small>]]) 5 juillet 2023 à 10:18 (CEST) {{Averto|niveau=0|page=}}[[Utilisateur:Chaton2014|<span style="text-Turquoise:pink 0.1em 0.1em 0.1em">Chaton2014</span>]] ([[Discussion utilisateur:Chaton2014|<small><span style="color: black;">Parlons</span></small>]]) 5 juillet 2023 à 10:18 (CEST)'},
  {urlparam:"warn=02", text:"Averto-1",   template:'{{subst:Aveto-1}}[[Utilisateur:Chaton2014|<span style="text-Turquoise:pink 0.1em 0.1em 0.1em">Chaton2014</span>]] ([[Discussion utilisateur:Chaton2014|<small><span style="color: black;">Parlons</span></small>]]) 5 juillet 2023 à 10:18 (CEST)'},
  {urlparam:"warn=06", text:"Spam0", template:'{{Averto|niveau=0|type=spam|page={{{1}}}}}[[Utilisateur:Chaton2014|<span style="text-Turquoise:pink 0.1em 0.1em 0.1em">Chaton2014</span>]] ([[Discussion utilisateur:Chaton2014|<small><span style="color: black;">Parlons</span></small>]]) 5 juillet 2023 à 10:18 (CEST)'},
  {urlparam:"warn=10", text:"nouveau",      template:'{{Bienvenue}}[[Utilisateur:Chaton2014|<span style="text-Turquoise:pink 0.1em 0.1em 0.1em">Chaton2014</span>]] ([[Discussion utilisateur:Chaton2014|<small><span style="color: black;">Parlons</span></small>]]) 5 juillet 2023 à 10:18 (CEST) {{Averto|niveau=0|type=spam|page={{{1}}}}}[[Utilisateur:Chaton2014|<span style="text-Turquoise:pink 0.1em 0.1em 0.1em">Chaton2014</span>]] ([[Discussion utilisateur:Chaton2014|<small><span style="color: black;">Parlons</span></small>]]) 5 juillet 2023 à 10:18 (CEST)'},
  {urlparam:"warn=07", text:"Spam1", template:'{{Averto|niveau=1|type=spam|page={{{1}}}}}[[Utilisateur:Chaton2014|<span style="text-Turquoise:pink 0.1em 0.1em 0.1em">Chaton2014</span>]] ([[Discussion utilisateur:Chaton2014|<small><span style="color: black;">Parlons</span></small>]]) 5 juillet 2023 à 10:18 (CEST)'},
  {urlparam:"warn=08", text:"Bienvenue",    template:'{{Bienvenue}}[[Utilisateur:Chaton2014|<span style="text-Turquoise:pink 0.1em 0.1em 0.1em">Chaton2014</span>]] ([[Discussion utilisateur:Chaton2014|<small><span style="color: black;">Parlons</span></small>]]) 5 juillet 2023 à 10:18 (CEST)'},
  {urlparam:"warn=09", text:"BienvenueIP",  template:'{{Bienvenue IP}}[[Utilisateur:Chaton2014|<span style="text-Turquoise:pink 0.1em 0.1em 0.1em">Chaton2014</span>]] ([[Discussion utilisateur:Chaton2014|<small><span style="color: black;">Parlons</span></small>]]) 5 juillet 2023 à 10:18 (CEST)'},
  {urlparam:"warn=10", text:"Bac à sable",      template:'__NOEDITSECTION__
__NOINDEX__
<div style="text-align:center">
{{Utilisateur Faux-nez|Rififi‎}}
{{clr}}

<!--MjY3MjU1MjMwMTA4OTI1OTUyOmZyOlJpZmlmaTI=-->
== Au random ==
Permet d'afficher des choses au hasard. On peut mettre une infinité de possibilités. Un purge permet d'afficher une nouvelle chose si jamais un rechargement ne fait rien.
{{Boîte déroulante|titre=Syntaxe|contenu=
<nowiki>{{#switch:{{aléatoire|0|5}}
 | 0=<!--à complèter-->
 | 1=<!--à complèter-->
 | 2=<!--à complèter-->
 | 3=<!--à complèter-->
 | 4=<!--à complèter-->
 | 5=<!--à complèter-->
}}</nowiki>
}}
Rendu (exemple, purgez la page ou rechargez là pour changer de nombre) : {{#switch:{{aléatoire|0|5}}
 | 0=0
 | 1=1
 | 2=2
 | 3=3
 | 4=4
 | 5=5
}}
</div>[[Utilisateur:Chaton2014|<span style="text-Turquoise:pink 0.1em 0.1em 0.1em">Chaton2014</span>]] ([[Discussion utilisateur:Chaton2014|<small><span style="color: black;">Parlons</span></small>]]) 5 juillet 2023 à 10:18 (CEST)'},
  {urlparam:"warn=10", text:"nouveau",      template:'{{Bienvenue}}[[Utilisateur:Chaton2014|<span style="text-Turquoise:pink 0.1em 0.1em 0.1em">Chaton2014</span>]] ([[Discussion utilisateur:Chaton2014|<small><span style="color: black;">Parlons</span></small>]]) 5 juillet 2023 à 10:18 (CEST) __NOEDITSECTION__
__NOINDEX__
<div style="text-align:center">
{{Utilisateur Faux-nez|Rififi‎}}
{{clr}}

<!--MjY3MjU1MjMwMTA4OTI1OTUyOmZyOlJpZmlmaTI=-->
== Au random ==
Permet d'afficher des choses au hasard. On peut mettre une infinité de possibilités. Un purge permet d'afficher une nouvelle chose si jamais un rechargement ne fait rien.
{{Boîte déroulante|titre=Syntaxe|contenu=
<nowiki>{{#switch:{{aléatoire|0|5}}
 | 0=<!--à complèter-->
 | 1=<!--à complèter-->
 | 2=<!--à complèter-->
 | 3=<!--à complèter-->
 | 4=<!--à complèter-->
 | 5=<!--à complèter-->Common.js
}}</nowiki>
}}
Rendu (exemple, purgez la page ou rechargez là pour changer de nombre) : {{#switch:{{aléatoire|0|5}}
 | 0=0
 | 1=1
 | 2=2
 | 3=3
 | 4=4
 | 5=5
}}
</div>[[Utilisateur:Petit Chaton|<span style="text-Turquoise:pink 0.1em 0.1em 0.1em">Petit Chaton😺🐈 </span>]] ([[Discussion utilisateur:Petit Chaton|<small><span style="color: black;">Parlons</span></small>]]) 5 juillet 2023 à 10:18 (CEST)'}
];
// Code de Matteo1234321
//Suppression des liens des balises Modification par mobile et Éditeur Visuel (normal et basculé), sur lesquels on clique toujours sans faire exprès sur mobile, ce qui est très pénible...
$('.mw-tag-marker-mobile_edit a').removeAttr('href').css('color', '#222');
$('.mw-tag-marker-visualeditor a').removeAttr('href').css('color', '#222');
$('.mw-tag-marker-visualeditor-switched a').removeAttr('href').css('color', '#222');

//Config du gadget LastContrib (toujours de Matteo)
window.lastContribNiveau1 = 180;
window.lastContribNiveau2 = 600;
window.lastContribNiveau3 = 3600;