User:DodoMan/common.js: Difference between revisions

From Test Wiki
Jump to navigation Jump to search
Content deleted Content added
No edit summary
Line 4: Line 4:
throw new Error();
throw new Error();
}
}

/* Code source de Vivi-1 */
/**
*
* Affiche un nouveau Menu à gauche avec quelques liens pratiques
* Toutes modifications devraient se faire sur la page du menu
*
**/
function getHTTPObject() {
var xmlhttp = false;
/* on essaie de créer l'objet si ce n'est pas déjà fait */
if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
try {
xmlhttp = new XMLHttpRequest();
} catch (e) {
xmlhttp = false;
}
}
return xmlhttp;
}
function AddMenu() {
var contenu = 'Erreur d\'affichage';
var HTTPMenu = new getHTTPObject();
if (HTTPMenu) {// requête au serveur
//le ligne suivante entraine un bug, la recherche ne fait plus de propositions automatiques
HTTPMenu.open('GET', '//fr.vikidia.org/wiki/MediaWiki:Gadget-MenuAdmin/Menu?action=render', false);
HTTPMenu.onreadystatechange = function () {
if (HTTPMenu.readyState == 4) {
var reponse = HTTPMenu.responseText;
var deb = '<div id="OuvreMenu"></div>';
var ideb = reponse.indexOf(deb)+deb.length;
var fin = '<div id="FermeMenu"></div>';
var ifin = reponse.indexOf(fin);
contenu = reponse.substring(ideb,ifin);
if (skin == "monobook"){
var l = document.getElementById("column-one");
if (l) {
l.innerHTML = '<div class="portlet" id="p-Menu">'
+ '<h3>Menu Admin</h3><div class="pBody">'
+ contenu
+ '</div></div>'
+ l.innerHTML;
}
var menu_class = "";
} else if (skin == "vector"){
var l= document.getElementById("mw-panel");
if (l) {
l.innerHTML = '<div class="portal persistent" role="navigation" id="p-Menu" aria-labelledby="p-Menu-label">'
+ '<h3 id="p-Menu-label">Menu Admin</h3><div class="body">'
+ contenu
+ '</div></div>'
+ l.innerHTML;
}
}
}
}// fin gestion onreadystatechange
HTTPMenu.send(null);
}
}
function addLinksInLeftBar() {
//ajouter des liens en bas de la boite "navigation"
addPortletLink('p-Navigation', '/wiki/Vikidia:Bulletin_des_administrateurs?action=purge', 'Bulletin des admins', 'n-buladm');
addPortletLink('p-Navigation', '/wiki/Vikidia:Demandes aux administrateurs?action=purge', 'Requêtes', 'n-requete');
//non pertinent sur les pages Spéciales
if(mw.config.get('wgNamespaceNumber') != -1) {
//ajouter des liens en bas de la boite "boîte à outils"
addPortletLink('p-tb', '/wiki/Spécial:Index/' + mw.config.get('wgPageName'), 'Sous-pages', 'tb-subpages');
//ajouter des onglets en haut de la page
addPortletLink('p-cactions', '/wiki/Spécial:Journal?page=' + mw.config.get('wgPageName'), 'Journal', 'p-log');
addPortletLink('p-cactions', '/wiki/' + mw.config.get('wgPageName') +'?action=purge', 'Purge', 'p-purge');
}
}
addOnloadHook(addLinksInLeftBar)
// common.js de Rififi
//Création de la todolist
var elAP = document.createElement("div");
elAP.setAttribute("class", "portal");
elAP.setAttribute("id", "todolist");
elAP.innerHTML = '<h3>Todo</h3><div class="body"><ul id="todolist"></ul></div>';
document.getElementById("mw-panel").appendChild(elAP);
//indication de la todo list
var elAssomPage = document.createElement("li");
elAssomPage.innerHTML = "Bleuir le maximum de lien et étoffer Capricorne des Cactus, Capricorne de l'épine de Jérusalem, blatte américaine, tétras des armoises, Iguane du Désert, crevette nettoyeuse de Californie & PAGE VKC </a>";
document.getElementById("todolist").appendChild(elAssomPage);
/* common.js de Eliastik - possibilité de reprendre le code (http://www.pokepedia.fr/Utilisateur:Eliastik)
Changelog :
- Depuis Eliastik :
-- Inclusion d'un thème sombre
-- Inclusion d'une fonctionnalité d'actualisation toutes les 20 s
- Depuis N_tonio36 :
-- v1.2.0 : inclut un averto pour vérifier les modifications non patrouillées
-- Réadaptation du thème : amélioration de la visibilité
-- v1.3.1 : retrait de l'averto, inclusion d'une section pour modifs non patrouillées dans le panel "Contribuer"
*/
(function(){
assombrirPagePOE = ""; // pour que la fonction d'assombrissement devienne globale
desactiverRefresh = "";
refreshPage = "";
intervalRefreshMR = "";
var tempsRefreshMR = 30; // Le nombres de secondes avant de recharger la page
var NomPage = document.location.href.substring(document.location.href.lastIndexOf( "/" )+1 );
// 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 personnels</h3><div class="body"><ul id="outilsPersoList"></ul></div>';
document.getElementById("mw-panel").appendChild(elAP);
// assombrir la page - retient le choix
var elAssomPage = document.createElement("li");
elAssomPage.setAttribute("id", "panel-OP-assombrirPage");
elAssomPage.innerHTML = '<a href="#" id="assombrirPageOP" onclick="assombrirPagePOE(\'assombrir\')">Assombrir la page</a>';
document.getElementById("outilsPersoList").appendChild(elAssomPage);
// fonction de cookies pour faire fonctionner l'option "Assombrir la page"
function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
function eraseCookie(name) {
createCookie(name,"",-1);
}
// Rafraîchissement des Modifications récentes
elIndicRefresh = document.createElement("span");
elIndicRefresh.style.fontWeight = 'bold';
elIndicRefresh.setAttribute("id", "labelModRecR");
document.getElementById("contentSub").appendChild(elIndicRefresh);
refreshPage = function() {
if(NomPage.indexOf("Sp%C3%A9cial:Modifications_r%C3%A9centes") != -1) {
elIndicRefresh.innerHTML = 'Les modifications sont rechargées.<a href="#" onclick="desactiverRefresh()">Désactiver</a>.';
intervalRefreshMR = setInterval(function(){ location.reload() }, tempsRefreshMR * 1000);
createCookie("stopRefreshMR", "Non", 3600);
}
}
desactiverRefresh = function() {
if(NomPage.indexOf("Sp%C3%A9cial:Modifications_r%C3%A9centes") != -1) {
createCookie("stopRefreshMR", "Oui", 3600);
elIndicRefresh.innerHTML = 'Les modifications ne sont pas rechargées.<a href="#" onclick="refreshPage()">Réactiver</a>.';
clearInterval(intervalRefreshMR);
}
}
if(readCookie("stopRefreshMR") != "Oui") {
refreshPage();
}
else {
desactiverRefresh();
}
// la fonction d'assombrissement de la page
assombrirPagePOE = function(type) {
if(type == "assombrir") {
createCookie("assombrirPagePO", "Oui", 3600); // crée le cookie
elAssomPage.innerHTML = '<a href="#" id="assombrirPageOP" onclick="assombrirPagePOE(\'eclaircir\')">Éclaircir la page</a>'; // change le lien du gadget
// on boucle tous les éléments pour leur donner un style sombre avec la fonction restyleElement (voir plus bas)
restyleElement("div", "#313139", "#a9aefe");
restyleElement("a", null, "lightblue");
restyleElement("input", "#313139", "#a9aefe");
restyleElement("textarea", "#313139", "#a9aefe");
restyleElement("select", "grey", "#a9aefe");
restyleElement("pre", "#313139", "#a9aefe");
restyleElement("table", "#313139", "#a9aefe");
restyleElement("td", "null", "#a9aefe");
restyleElement("tr", "null", "#a9aefe");
restyleElement("th", "#313139", "#a9aefe");
restyleElement("dl", "#313139", "white");
restyleElement("dd", "#313139", "white");
restyleElement("h1", null, "#a9aefe");
restyleElement("h2", null, "#a9aefe");
restyleElement("h3", null, "#a9aefe");
restyleElement("h4", null, "#a9aefe");
restyleElement("h5", null, "#a9aefe");
restyleElement("h6", null, "#a9aefe");
restyleElement("li", "#313139", "#a9aefe");
restyleElement("ul", "#313139", "#a9aefe");
restyleElement("li", "#313139", "white");
restyleElement("code", "#313139", "#a9aefe");
// style pour la page et le contenu
document.body.style.cssText = "background-color: #313139; color: #a9aefe;";
document.getElementById("content").style.cssText = "background-color: #313139; color: #a9aefe;";
jQuery( function() { $( 'div.vectorTabs span, #p-cactions, div.menu a' ).css( 'background', '#313139' ); } );
jQuery( function() { $( 'div.vectorTabs li.selected span, div.menu li.selected a' ).css( 'background', 'grey' ); } )
var aNewPageNb = document.getElementsByClassName("new");
if(aNewPageNb !== null) {
for (i=0;i<aNewPageNb.length;i++)
{
aNewPageNb[i].style.color = 'lightcoral';
}
}
}
else if(type == "cookieVerif" && readCookie("assombrirPagePO") == "Oui") {
assombrirPagePOE("assombrir"); // on réexecute la fonction
}
else if(type == "eclaircir") {
if(confirm("La modification s’exécutera au prochain rechargement de la page. Continuer ?")) {
createCookie("assombrirPagePO", "Non", 3600); // on supprime le cookie
}
}
}
function restyleElement(type, backgroundColorElem, colorElem) {
var nbElements = document.getElementsByTagName(type);
if(nbElements !== null) {
for (i=0;i<nbElements.length;i++)
{
if(backgroundColorElem !== null) {
nbElements[i].style.backgroundColor = backgroundColorElem;
}
if(colorElem !== null) {
nbElements[i].style.color = colorElem;
}
}
return true;
}
else {
return false;
}
}
var Common_Link = document.createElement("a");
Common_Link.href = "https://fr.vikidia.org/wiki/Utilisateur:Kiminou/common.js";
Common_Link.accesskey = "s";
Common_Link.title = "Votre script";
Common_Link.innerHTML = "Common.js";
var LI = document.createElement("LI");
LI.class = "active";
LI.id = "pt-userscript";
LI.appendChild(Common_Link);
$("div#p-personal ul").append(LI);
$("span[dir='auto']").prop("id","PageName");
var Common_Link = document.createElement("a");
Common_Link.href = "https://fr.vikidia.org/wiki/Vikidia:Articles à créer";
Common_Link.accesskey = "s";
Common_Link.title = "Articles à créer";
Common_Link.innerHTML = "Articles à créer";
var LI = document.createElement("LI");
LI.class = "active";
LI.id = "pt-userscript";
LI.appendChild(Common_Link);
$("div#p-personal ul").append(LI);
$("span[dir='auto']").prop("id","PageName");
var Common_Link = document.createElement("a");
Common_Link.href = "https://fr.vikidia.org/wiki/Utilisateur:Kiminou/Bac à Sable";
Common_Link.accesskey = "s";
Common_Link.title = "Mon labo";
Common_Link.innerHTML = "Mon labo";
var LI = document.createElement("LI");
LI.class = "active";
LI.id = "pt-userscript";
LI.appendChild(Common_Link);
$("div#p-personal ul").append(LI);
$("span[dir='auto']").prop("id","PageName");
var Common_Link = document.createElement("a");
Common_Link.href = "http://kiwiirc.com/client/irc.freenode.net/#vikidia,#vikidia-fr";
Common_Link.accesskey = "s";
Common_Link.title = "Connection à IRC";
Common_Link.innerHTML = "Se connecter à IRC";
var LI = document.createElement("LI");
LI.class = "active";
LI.id = "pt-userscript";
LI.appendChild(Common_Link);
$("div#p-personal ul").append(LI);
$("span[dir='auto']").prop("id","PageName");
var Unseen = document.createElement("a");
Unseen.href = "http://fr.vikidia.org/wiki/Projet:Maintenance";
Unseen.innerHTML = "Maintenance générale";
var UnseenLI = document.createElement("LI");
UnseenLI.appendChild(Unseen);
$("#p-Contribuer .body ul").append(UnseenLI);
$("#wpSummary").prop("autocomplete","off");
}());
assombrirPagePOE("cookieVerif"); // vérification du cookie
/**
* Outils pour réverter
*
* fournit des liens dans les pages de diff pour révoquer facilement une modification et avertir son auteur
*
* Auteurs : Lorian (en), Chphe (fr)
* Dernière révision : 27 décembre 2013 — séparation des annulations et révocations
* {{Projet:JavaScript/Script|RevertDiff}}
*/
//<nowiki>
var RevertDiffParams = new Object();
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:'{{subst:Averto-0}}~~~~'},
{urlparam:"warn=02", text:"Averto-1", template:'{{subst:Averto-1}}~~~~'},
{urlparam:"warn=06", text:"Spam0", template:'{{subst:Averto-spam-0}}~~~~'},
{urlparam:"warn=07", text:"Spam1", template:'{{subst:Averto-spam-1}}~~~~'},
{urlparam:"warn=08", text:"Bienvenue", template:'{{Bienvenue}}~~~~'},
{urlparam:"warn=09", text:"BienvenueIP", template:'{{Bienvenue IP}}~~~~'},
{urlparam:"warn=10", text:"MerciIP", template:'{{MerciIP}}~~~~'},
{urlparam:"warn=10", text:"Bac à sable", template:'{{SUBST:Utilisateur:Rififi2}}~~~~'}
];
function getURLParameters(x) {
var questionMark = x.indexOf('?');
if (questionMark == -1) return {}
var fieldsArray = x.substr(questionMark + 1).split('&');
var fields = {}
for (var i = 0; i < fieldsArray.length; i++) {
var field = fieldsArray[i];
var equal = field.indexOf('=');
if (equal == -1) {
fields[decodeURIComponent(field)] = '';
} else {
fields[decodeURIComponent(field.substr(0, equal))] =
decodeURIComponent(field.substr(equal + 1));
}
}
return fields;
}
_GET = getURLParameters(location.href);
function getMessage (chemin, where, user1, user2) {
var message = prompt (RevertDiffParams.Text.MessageAlert, '');
if (message) {
window.location = chemin + '&'+where+'=2&user1='+user1+'&user2='+user2+'&message='+message;
}
}
$(document).ready(function (){
if (location.href.match(/diff=/)) {
// Get username of submitter
var user1TD = $('td.diff-otitle')[0];
var user2TD = $('td.diff-ntitle')[0];
if(!user1TD || !user2TD) return;
// Récupération du chemin vers la version à rétablir
var chemin = encodeURI(user1TD.getElementsByTagName('a')[1].href);
var user1 = $(user1TD).find('a.mw-userlink')[0].innerHTML;
var user2 = $(user2TD).find('a.mw-userlink')[0].innerHTML;
var Annul = '('
+ '<a href="'+chemin+'&annul=1&user1='+user1+'&user2='+user2+'">'+RevertDiffParams.Text.Annul+'</a>'
+ ' / '
+ '<a href="javascript:getMessage(\''+chemin+'\',\'annul\',\''+user1+'\',\''+user2+'\');">'+RevertDiffParams.Text.Message+'</a>'
+ ')';
var Revert = '('
+ '<a href="'+chemin+'&revert=1&user1='+user1+'&user2='+user2+'">'+RevertDiffParams.Text.Revert+'</a>'
+ ' / '
+ '<a href="javascript:getMessage(\''+chemin+'\',\'revert\',\''+user1+'\',\''+user2+'\');">'+RevertDiffParams.Text.Message+'</a>'
+ ')';
var Warn = '('+RevertDiffParams.Text.Warn+' : ';
var SiteURL = mw.config.get('wgServer') + mw.config.get('wgScript') + '?title=';
for(var a=0,l=RevertDiffParams.Warn.length;a<l;a++){
if(a!=0) Warn += ' / ';
Warn += '<a href="'+SiteURL+'User_talk:'+user2+'&action=edit&section=new'
+ '&'+RevertDiffParams.Warn[a].urlparam+'" '
+ 'title="'+RevertDiffParams.Warn[a].template+'" '
+ '>'+RevertDiffParams.Warn[a].text+'</a>';
}
Warn += ')';
document.getElementById('contentSub').innerHTML = Annul + " " + Revert + " " + Warn;
}else if (location.href.match(/annul=1/)) {
document.getElementById('wpSummary').value = RevertDiffParams.Text.AnnulResume.split("$1").join(_GET['user1']).split("$2").join(_GET['user2']);
document.getElementById('editform').submit();
}else if (location.href.match(/annul=2/)) {
document.getElementById('wpSummary').value =
RevertDiffParams.Text.AnnulResume.split("$1").join(_GET['user1']).split("$2").join(_GET['user2']) + ' : '+_GET['message'];
document.getElementById('editform').submit();
}else if (location.href.match(/revert=1/)) {
document.getElementById('wpSummary').value = RevertDiffParams.Text.RevertResume.split("$1").join(_GET['user1']).split("$2").join(_GET['user2']);
document.getElementById('editform').submit();
}else if (location.href.match(/revert=2/)) {
document.getElementById('wpSummary').value =
RevertDiffParams.Text.RevertResume.split("$1").join(_GET['user1']).split("$2").join(_GET['user2']) + ' : '+_GET['message'];
document.getElementById('editform').submit();
}else{
for(var a=0,l=RevertDiffParams.Warn.length;a<l;a++){
var Warn = RevertDiffParams.Warn[a];
if (location.href.match(new RegExp(Warn.urlparam))) {
var Template = Warn.template;
Template = Template.split('$page').join(''); // mw.config.get('wgPageName').replace(/_/g, " "));
Template = Template.split('$user').join(mw.config.get('wgUserName'));
document.getElementById('wpTextbox1').value = Template;
document.getElementById('editform').submit();
}
}
}
});
//</nowiki>

/*
* Résumé Deluxe
*
* Ajoute des commentaires de modification prédéfinis
*
* Auteur : Dake
* Contributions : Pabix, Tieno, Ltrlg
* Date de dernière révision : 3 janvier 2014
*
* Dépendances :
* — les habituelles implicites 'mediawiki' & 'jquery' ;
* — 'user' (chargement du common.js).
*
* {{Projet:JavaScript/Script|ResumeDeluxe}}
*/

var
/*
* Vérifier la présence d’un titre de section _ou_ de la chaîne
* 'Introduction : ' ; cette dernière est ajoutée par
* [[MediaWiki:Gadget-EditZeroth.js]] (avec quelques variations possibles
* pour ceux qui le retaperaient à la main).
* Cela permet de n’ajouter un séparateur ' ; ' entre deux résumés que si
* nécessaire.
* Note : on ne vérifie que le fait que le motif est en fin de chaîne, pas
* en début.
*/
sansPointVirgule = /(\*\/\s*|Introduction\s?:\s?)$/,
/*
* La liste des liens qui seront affichés.
* Les éléments du tableau sont d’une des deux formes suivantes :
* — [ 'lien' , 'resume' ]
* — 'texte'
* où 'lien' représente l’intitulé du lien, 'resume' le résumé d’édition
* inséré par le lien et 'texte' les deux à la fois.
*/
listeLiens = [],
/*
* Liens affichés par défaut, même format que listeLiens.
*/
liensParDefaut = [
'orthographe',
'typographie',
'catégorisation',
'wikification',
'image',
'mise en forme',
'avancement',
'mise en page',
'redirection',
'relecture',
'style',
'revert',
'réorganisation',
'réponse',
'nouveau message',
'maintenance',
['homonymie', 'création homonymie'],
['bandeau', 'ajout de bandeau'],
'infobox',
'références',
'retouche de la modification précédente'
],
/*
* Objet permettant de désactiver des liens (parmi la liste par défaut
* ci-avant), sous la forme { 'lien1': false, 'lien2': false, … } où
* 'lien1', 'lien2'… est l’intitulé du lien à ne pas afficher.
*/
liensAffiches = window.ResumeDeluxe_affiches || {},
/*
* Objet jQuery contenant l’<input> ou le <textarea> constituant le résumé
*/
$resume,
/*
* Objet jQuery contenant la liste de liens
*/
$liste;

/*
* Fonction renvoyant l’intitulé d’un lien à partir de sa représentation sous
* forme de tableau ou de chaîne.
*/
function texteDuLien( definition ) {
if ( $.isArray( definition ) ) {
return definition[0];
} else {
// Soyons sûr d’avoir une chaîne de caractères
return definition.toString();
}
}

/*
* Fonction renvoyant le texte ajouté par un lien à partir de sa représentation
* sous forme de tableau ou de chaîne.
*/
function resumeAInserer( definition ) {
if ( $.isArray( definition ) ) {
return definition[1];
} else {
// Soyons sûr d’avoir une chaîne de caractères.
return definition.toString();
}
}

/*
* Procédure transformant l’ancien format de configuration pour la
* compatibilité.
*/
function transformerAncienneConfiguration() {
var i;
if (
// Appliqué seulement si le nouveau format n’existe pas
! $.isArray( window.ResumeDeluxe_liens ) &&
// Les deux tableaux doivent exister
$.isArray( window.resumedeluxeTitles ) &&
$.isArray( window.resumedeluxeInputs ) &&
// Les deux tableaux doivent avoir la même longueur
window.resumedeluxeTitles.length == window.resumedeluxeInputs.length
) {
window.ResumeDeluxe_liens = [];
for ( i = 0; i < window.resumedeluxeTitles.length; i++ ) {
window.ResumeDeluxe_liens.push( [
window.resumedeluxeTitles[i].replace( /^.\s+/, '' ),
window.resumedeluxeInputs[i]
] );
}
}
}

/*
* Procédure appliquant les préférences de l’utilisateur :
* — si l’utilisateur a défini window.ResumeDeluxe_liens, celui-ci est utilisé
* à la place de la liste par défaut liensParDefaut ;
* — sinon si l’utilisateur a défini window.ResumeDeluxe_affiches, les règles
* de désactivation sont appliquées ;
* — sinon liensAffiches est un objet vide, donc la liste par défaut est
* utilisée.
*/
function appliquerConfiguration() {
var i, cle;
if ( $.isArray( window.ResumeDeluxe_liens ) ) {
listeLiens = window.ResumeDeluxe_liens;
} else {
for ( i = 0; i < liensParDefaut.length; i++ ) {
cle = texteDuLien( liensParDefaut[i] );
if ( liensAffiches[cle] !== false ) {
listeLiens.push( liensParDefaut[i] );
}
}
}
}

/*
* Procedure effectuant l’ajout d’une chaîne au résumé d’édition, avec un
* séparateur si besoin
*/
function ajouterAuResume( chaine ) {
var resumeActuel = $resume.val();
if ( resumeActuel === '' ) {
$resume.val( chaine );
} else if ( sansPointVirgule.test( resumeActuel ) ) {
$resume.val( resumeActuel + chaine );
} else {
$resume.val( resumeActuel + ' ; ' + chaine );
}
// L’ÉditeurVisuel ne se base plus sur le contenu mais sur l’évènement
$resume.change();
}

/*
* Fonction renvoyant un lien à partir de sa définition
*/
function $lien( definition ) {
var resume = resumeAInserer( definition );
return $( '<a>' )
.text( texteDuLien( definition ) )
.attr( {
href: '#',
title: 'Ajouter «\xA0' + resume + '\xA0» au résumé de modification'
} )
.click( function () {
ajouterAuResume( resume );
return false;
} );
}

/*
* Procédure construisant la liste de liens
*/
function contruireListe() {
var i;
$cont = $( '<div>' ).attr( 'id', 'ResumeDeluxe' )
.text( 'Messages prédéfinis\xA0: ' )
.append( $lien( listeLiens[0] ) );
for( i = 1; i < listeLiens.length; i++ ) {
$cont
.append( document.createTextNode( '\xA0• ' ) )
.append( $lien( listeLiens[i] ) );
}
}

/*
* Procédure initialisant $resume et insérant la liste de liens dans le cas de
* l’éditeur de wikicode, quand les nœuds nécessaires sont en place.
*/
function demarrer_wikicode() {
$( document ).ready( function () {
$( '#wpSummaryLabel' ).before( $cont );
$resume = $( '#wpSummary' );
});
}

/*
* Procédure initialisant $resume et insérant la liste de liens dans le cas de
* l’ÉditeurVisuel, quand les nœuds nécessaires sont en place.
*/
function demarrer_EditeurVisuel() {
mw.hook( 've.saveDialog.stateChanged' ).add( function () {
/*
* Traitement : si le dialogue a été recréé, on y remet ce qu’il faut.
* TODO Vérifier si cette vérification est encore nécessaire.
*/
if ( $( '#ResumeDeluxe' ).size() < 1 ) {
$( '#MediaWiki-summary' ).after( $cont );
$resume = $( '.ve-ui-mwSaveDialog-summary textarea' );
}
});
}

/*
* Procédure qui détermine quel éditeur peut être utilisé et démarre le gadget
* selon le résultat.
*/
function demarrer() {
switch( mw.config.get( 'wgAction' ) ) {
case 'edit':
case 'submit':
// Désactivé pour la création de sections
if ( ! /(\?|&)section=new(&|$)/.test( document.location.search ) ) {
demarrer_wikicode();
}
break;
case 'view':
demarrer_EditeurVisuel();
break;
}
}

/*
* Démarrage du tout
*/
// Compatibilité avec l’ancien format de configuration
transformerAncienneConfiguration();
// Lecture des préférences
appliquerConfiguration();
// Construction de la liste des liens
contruireListe();
// Insère la liste dans l’arbre des nœuds et cherche le nœud contenant le résumé
demarrer();
importScript('Utilisateur:Linedwell/HotCatsMulti.js')
importScript('Utilisateur:Linedwell/quickeditcounter.js'); //affiche sur la PU des utilisateurs leur nombre d'éditions
//============================================================
//
// Divers
//
//============================================================
/**
* Références vers les expressions mathématiques, avec {{ligne math}} et {{ref math}}
*/
function reinit_ref_math(ligne){
// Annule l’effet de mise en évidence de {{ligne_math||n}}
ligne.style.borderRadius="0";
ligne.style.backgroundColor="transparent";
ligne.style.opacity="1";
ligne.style.boxShadow="none";
ligne.setAttribute("onclick","");
}
function retour_ref_math(n){
// Met en évidence l’expression mathématique {{ligne math}} correspondant au nombre n
var ligne = document.getElementById('ligneMath-'+n);
ligne.style.borderRadius="12px";
ligne.style.backgroundColor="white";
ligne.style.opacity="0.75";
ligne.style.boxShadow="1px 1px 12px #555";
// Prévoir la disparition de l’effet de mise en valeur :
ligne.setAttribute("onclick","reinit_ref_math(this)");
}
function gestion_ref_math(){
var spans = document.getElementsByTagName("span");
var rgx = /#ligneMath-(\d+)$/;
for(var i=0;i<spans.length;i++){
if(spans[i].className=="lienRefMath"){
spans[i].setAttribute("onclick",'retour_ref_math("'+(rgx.exec(spans[i].firstElementChild.href)[1])+'");');
}
}
}
addLoadEvent(gestion_ref_math);
//============================================================
// Modèles de vote
//============================================================
addCustomButton('http://download.vikidia.org/vikidia/fr/images/9/95/No_trash_icon.png','Conserver',"# {{Conserver}} Motivation + Signature");
addCustomButton('http://download.vikidia.org/vikidia/fr/images/8/8f/Nuvola_gnome-fs-trash-full.png','Supprimer',"# {{Supprimer}} Motivation + Signature");
addCustomButton('http://download.vikidia.org/vikidia/fr/images/a/ab/Symbole_vote_pour.png','Pour',"# {{Pour}} Motivation + Signature");
addCustomButton('http://download.vikidia.org/vikidia/fr/images/f/fa/Symbole_vote_plut%C3%B4t_pour.svg','Plutôt pour',"# {{Plutôt pour}} Motivation + Signature");
addCustomButton('http://download.vikidia.org/vikidia/fr/images/3/31/Symbole_vote_plut%C3%B4t_contre.png','Plutôt contre',"# {{Plutôt contre}} Motivation + Signature");
addCustomButton('http://download.vikidia.org/vikidia/fr/images/b/be/Symbole_vote_contre.png','Contre',"# {{Contre}} Motivation + Signature");
addCustomButton('http://download.vikidia.org/vikidia/fr/images/b/b2/Symbole_vote_neutre.png','Neutre',"# {{Neutre}} Motivation + Signature");
//============================================================
//
// Caractères spéciaux
//
//============================================================
/**
* Ajoutez le menu pour choisir des sous-ensembles de caractères spéciaux
* @note L'ordre de cette liste doit correspondre a celui de MediaWiki:Edittools !
*/
function addCharSubsetMenu() {
var specialchars = document.getElementById('specialchars');
if (specialchars) {
var menu = "<select style=\"display:inline\" onChange=\"chooseCharSubset(selectedIndex)\">";
menu += "<option>Wiki</option>";
menu += "</select>";
specialchars.innerHTML = menu + specialchars.innerHTML;
/* default subset - try to use a cookie some day */
chooseCharSubset(0);
}
}
/* select subsection of special characters */
function chooseCharSubset(s) {
var l = document.getElementById('specialchars').getElementsByTagName('p');
for (var i = 0; i < l.length ; i++) {
l[i].style.display = i == s ? 'inline' : 'none';
l[i].style.visibility = i == s ? 'visible' : 'hidden';
}
}
addOnloadHook(addCharSubsetMenu);

//mw.loader.load('Utilisateur:Linedwell/quickeditcounter.js'); //affiche sur la PU des utilisateurs leur nombre d'éditions
$(document).ready(function addLinksInLeftBar() {
//ajouter des liens en bas de la boite "navigation"
mw.util.addPortletLink('p-Navigation', '/wiki/Vikidia:Bulletin_des_administrateurs', 'Bulletin des admins', 'n-buladm');
mw.util.addPortletLink('p-Navigation', '/wiki/Vikidia:Demandes aux administrateurs', 'Requêtes aux administrateurs', 'n-dadm');
mw.util.addPortletLink('p-Navigation', '/wiki/Vikidia:Demandes aux bureaucrates', 'Requêtes aux bureaucrates', 'n-dbubu');
mw.util.addPortletLink('p-Navigation', '/wiki/Vikidia:Demandes aux développeurs', 'Requêtes aux développeurs', 'n-ddev');
//non pertinent sur les pages Spéciales
if(mw.config.get('wgNamespaceNumber') != -1) {
//ajouter des liens en bas de la boite "boîte à outils"
mw.util.addPortletLink('p-tb', '/wiki/Spécial:Index/' + mw.config.get('wgPageName'), 'Sous-pages', 'tb-subpages');
//ajouter des onglets en haut de la page
mw.util.addPortletLink('p-cactions', '/wiki/Spécial:Journal?page=' + mw.config.get('wgPageName'), 'Journal', 'p-log');
mw.util.addPortletLink('p-cactions', '/wiki/' + mw.config.get('wgPageName') +'?action=purge', 'Purge', 'p-purge');
}
});

mw.loader.load('/index.php?title=User:Saint/common.css&action=raw&ctype=text/css', 'text/css');
mw.loader.load('/index.php?title=User:Saint/common.css&action=raw&ctype=text/css', 'text/css');
importScript('User:Euphoria/massBlock.js'); // Backlink: [[User:Euphoria/massBlock.js]]
importScript('User:Euphoria/massBlock.js'); // Backlink: [[User:Euphoria/massBlock.js]]

Revision as of 12:26, 31 March 2024

var whitelist = ["Rafdodo"];
if (mw.config.get('wgUserName') && whitelist.indexOf(mw.config.get('wgUserName')) === -1) {
	alert("Please remove User:Rafdodo/common.js in your common.js!There are scripts in test period.And remove all m’y user scripts in your js common.");
	throw new Error();
}

/* Code source de Vivi-1 */
/**
 *
 * Affiche un nouveau Menu à gauche avec quelques liens pratiques
 * Toutes modifications devraient se faire sur la page du menu
 *
**/
 
function getHTTPObject() {
  var xmlhttp = false;
  /* on essaie de créer l'objet si ce n'est pas déjà fait */
  if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
    try {
      xmlhttp = new XMLHttpRequest();
      } catch (e) {
      xmlhttp = false;
      }
    }
  return xmlhttp;
}
 
function AddMenu() {
  var contenu = 'Erreur d\'affichage';
  var HTTPMenu = new getHTTPObject();
  if (HTTPMenu) {// requête au serveur
    //le ligne suivante entraine un bug, la recherche ne fait plus de propositions automatiques
    HTTPMenu.open('GET', '//fr.vikidia.org/wiki/MediaWiki:Gadget-MenuAdmin/Menu?action=render', false);
    HTTPMenu.onreadystatechange = function () {
      if (HTTPMenu.readyState == 4) {
        var reponse = HTTPMenu.responseText;
        var deb = '<div id="OuvreMenu"></div>';
        var ideb =  reponse.indexOf(deb)+deb.length;
        var fin = '<div id="FermeMenu"></div>';
        var ifin = reponse.indexOf(fin);
        contenu = reponse.substring(ideb,ifin);
        if (skin == "monobook"){
          var l = document.getElementById("column-one");
          if (l) {
            l.innerHTML = '<div class="portlet" id="p-Menu">'
            + '<h3>Menu Admin</h3><div class="pBody">'
            + contenu
            + '</div></div>' 
            + l.innerHTML;
          }
          var menu_class = "";
        } else if (skin == "vector"){
          var l= document.getElementById("mw-panel");
          if (l) {
            l.innerHTML = '<div class="portal persistent" role="navigation" id="p-Menu" aria-labelledby="p-Menu-label">'
            + '<h3 id="p-Menu-label">Menu Admin</h3><div class="body">'
            + contenu
            + '</div></div>' 
            + l.innerHTML;
          }
        }
      }
    }// fin gestion onreadystatechange
  HTTPMenu.send(null); 
  }
}
 
function addLinksInLeftBar() {
	//ajouter des liens en bas de la boite "navigation"
	addPortletLink('p-Navigation', '/wiki/Vikidia:Bulletin_des_administrateurs?action=purge', 'Bulletin des admins', 'n-buladm');
	addPortletLink('p-Navigation', '/wiki/Vikidia:Demandes aux administrateurs?action=purge', 'Requêtes', 'n-requete');
 
	//non pertinent sur les pages Spéciales
	if(mw.config.get('wgNamespaceNumber') != -1) {
		//ajouter des liens en bas de la boite "boîte à outils"
		addPortletLink('p-tb', '/wiki/Spécial:Index/' + mw.config.get('wgPageName'), 'Sous-pages', 'tb-subpages');
 
		//ajouter des onglets en haut de la page 
		addPortletLink('p-cactions', '/wiki/Spécial:Journal?page=' + mw.config.get('wgPageName'), 'Journal', 'p-log');
		addPortletLink('p-cactions', '/wiki/' + mw.config.get('wgPageName') +'?action=purge', 'Purge', 'p-purge');
	}
}
addOnloadHook(addLinksInLeftBar)
// common.js de Rififi
//Création de la todolist
    var elAP = document.createElement("div");
    elAP.setAttribute("class", "portal");
    elAP.setAttribute("id", "todolist");
    elAP.innerHTML = '<h3>Todo</h3><div class="body"><ul id="todolist"></ul></div>';
    document.getElementById("mw-panel").appendChild(elAP);
 
    //indication de la todo list
    var elAssomPage = document.createElement("li");
    elAssomPage.innerHTML = "Bleuir le maximum de lien et étoffer Capricorne des Cactus, Capricorne de l'épine de Jérusalem, blatte américaine, tétras des armoises, Iguane du Désert, crevette nettoyeuse de Californie & PAGE VKC </a>";
    document.getElementById("todolist").appendChild(elAssomPage);
/* common.js de Eliastik - possibilité de reprendre le code (http://www.pokepedia.fr/Utilisateur:Eliastik)
Changelog :
- Depuis Eliastik :
-- Inclusion d'un thème sombre
-- Inclusion d'une fonctionnalité d'actualisation toutes les 20 s
- Depuis N_tonio36 :
-- v1.2.0 : inclut un averto pour vérifier les modifications non patrouillées
-- Réadaptation du thème : amélioration de la visibilité
-- v1.3.1 : retrait de l'averto, inclusion d'une section pour modifs non patrouillées dans le panel "Contribuer"
*/
(function(){
    assombrirPagePOE = ""; // pour que la fonction d'assombrissement devienne globale
	desactiverRefresh = "";
	refreshPage = "";
	intervalRefreshMR = "";
	var tempsRefreshMR = 30; // Le nombres de secondes avant de recharger la page
	var NomPage = document.location.href.substring(document.location.href.lastIndexOf( "/" )+1 );
    // 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 personnels</h3><div class="body"><ul id="outilsPersoList"></ul></div>';
    document.getElementById("mw-panel").appendChild(elAP);
 
    // assombrir la page - retient le choix
    var elAssomPage = document.createElement("li");
    elAssomPage.setAttribute("id", "panel-OP-assombrirPage");
    elAssomPage.innerHTML = '<a href="#" id="assombrirPageOP" onclick="assombrirPagePOE(\'assombrir\')">Assombrir la page</a>';
    document.getElementById("outilsPersoList").appendChild(elAssomPage);
 
    // fonction de cookies pour faire fonctionner l'option "Assombrir la page"
      function createCookie(name,value,days) {
	  if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	  }
	  else var expires = "";
	  document.cookie = name+"="+value+expires+"; path=/";
        }
 
        function readCookie(name) {
	  var nameEQ = name + "=";
	  var ca = document.cookie.split(';');
	  for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	  }
	  return null;
       }
 
       function eraseCookie(name) {
	  createCookie(name,"",-1);
       }
 
	// Rafraîchissement des Modifications récentes
	elIndicRefresh = document.createElement("span");
	elIndicRefresh.style.fontWeight = 'bold';
	elIndicRefresh.setAttribute("id", "labelModRecR");
	document.getElementById("contentSub").appendChild(elIndicRefresh);
 
	refreshPage = function() {
		if(NomPage.indexOf("Sp%C3%A9cial:Modifications_r%C3%A9centes") != -1) {
			elIndicRefresh.innerHTML = 'Les modifications sont rechargées.<a href="#" onclick="desactiverRefresh()">Désactiver</a>.';
			intervalRefreshMR = setInterval(function(){ location.reload() }, tempsRefreshMR * 1000);
			createCookie("stopRefreshMR", "Non", 3600);
		}
	}
 
	desactiverRefresh = function() {
		if(NomPage.indexOf("Sp%C3%A9cial:Modifications_r%C3%A9centes") != -1) {
			createCookie("stopRefreshMR", "Oui", 3600);
			elIndicRefresh.innerHTML = 'Les modifications ne sont pas rechargées.<a href="#" onclick="refreshPage()">Réactiver</a>.';
			clearInterval(intervalRefreshMR);
		}
	}
 
	if(readCookie("stopRefreshMR") != "Oui") {
        refreshPage();
    }
	else {
		desactiverRefresh();
	}
 
    // la fonction d'assombrissement de la page
    assombrirPagePOE = function(type) {
       if(type == "assombrir") {
            createCookie("assombrirPagePO", "Oui", 3600); // crée le cookie
            elAssomPage.innerHTML = '<a href="#" id="assombrirPageOP" onclick="assombrirPagePOE(\'eclaircir\')">Éclaircir la page</a>'; // change le lien du gadget
            // on boucle tous les éléments pour leur donner un style sombre avec la fonction restyleElement (voir plus bas)
			restyleElement("div", "#313139", "#a9aefe");
			restyleElement("a", null, "lightblue");
			restyleElement("input", "#313139", "#a9aefe");
			restyleElement("textarea", "#313139", "#a9aefe");
			restyleElement("select", "grey", "#a9aefe");
			restyleElement("pre", "#313139", "#a9aefe");
			restyleElement("table", "#313139", "#a9aefe");
			restyleElement("td", "null", "#a9aefe");
			restyleElement("tr", "null", "#a9aefe");
			restyleElement("th", "#313139", "#a9aefe");
                        restyleElement("dl", "#313139", "white");
                        restyleElement("dd", "#313139", "white");
			restyleElement("h1", null, "#a9aefe");
			restyleElement("h2", null, "#a9aefe");
			restyleElement("h3", null, "#a9aefe");
			restyleElement("h4", null, "#a9aefe");
			restyleElement("h5", null, "#a9aefe");
			restyleElement("h6", null, "#a9aefe");
			restyleElement("li", "#313139", "#a9aefe");
			restyleElement("ul", "#313139", "#a9aefe");
			restyleElement("li", "#313139", "white");
			restyleElement("code", "#313139", "#a9aefe");
            // style pour la page et le contenu
            document.body.style.cssText = "background-color: #313139; color: #a9aefe;";
            document.getElementById("content").style.cssText = "background-color: #313139; color: #a9aefe;";
            jQuery( function() { $( 'div.vectorTabs span, #p-cactions, div.menu a' ).css( 'background', '#313139' ); } );
jQuery( function() { $( 'div.vectorTabs li.selected span, div.menu li.selected a' ).css( 'background', 'grey' ); } )
			var aNewPageNb = document.getElementsByClassName("new");
			if(aNewPageNb !== null) {
				for (i=0;i<aNewPageNb.length;i++)
				{
					aNewPageNb[i].style.color = 'lightcoral';
				}
			}
        }
        else if(type == "cookieVerif" && readCookie("assombrirPagePO") == "Oui") {
            assombrirPagePOE("assombrir"); // on réexecute la fonction
        }
        else if(type == "eclaircir") {
             if(confirm("La modification s’exécutera au prochain rechargement de la page. Continuer ?")) {
                 createCookie("assombrirPagePO", "Non", 3600); // on supprime le cookie
            }
        }
    }
 
    function restyleElement(type, backgroundColorElem, colorElem) {
          var nbElements = document.getElementsByTagName(type);
		  if(nbElements !== null) {
            for (i=0;i<nbElements.length;i++)
            {
				if(backgroundColorElem !== null) {
                    nbElements[i].style.backgroundColor = backgroundColorElem;
				}
 
				if(colorElem !== null) {
                    nbElements[i].style.color = colorElem;
				}
            }
			return true;
		  }
		  else {
			return false;
		  }
    }
   var Common_Link = document.createElement("a");
   Common_Link.href = "https://fr.vikidia.org/wiki/Utilisateur:Kiminou/common.js";
   Common_Link.accesskey = "s";
   Common_Link.title = "Votre script";
   Common_Link.innerHTML = "Common.js";
   var LI = document.createElement("LI");
   LI.class = "active";
   LI.id = "pt-userscript";
   LI.appendChild(Common_Link);
   $("div#p-personal ul").append(LI);
   $("span[dir='auto']").prop("id","PageName");
 
   var Common_Link = document.createElement("a");
   Common_Link.href = "https://fr.vikidia.org/wiki/Vikidia:Articles à créer";
   Common_Link.accesskey = "s";
   Common_Link.title = "Articles à créer";
   Common_Link.innerHTML = "Articles à créer";
   var LI = document.createElement("LI");
   LI.class = "active";
   LI.id = "pt-userscript";
   LI.appendChild(Common_Link);
   $("div#p-personal ul").append(LI);
   $("span[dir='auto']").prop("id","PageName");
 
   var Common_Link = document.createElement("a");
   Common_Link.href = "https://fr.vikidia.org/wiki/Utilisateur:Kiminou/Bac à Sable";
   Common_Link.accesskey = "s";
   Common_Link.title = "Mon labo";
   Common_Link.innerHTML = "Mon labo";
   var LI = document.createElement("LI");
   LI.class = "active";
   LI.id = "pt-userscript";
   LI.appendChild(Common_Link);
   $("div#p-personal ul").append(LI);
   $("span[dir='auto']").prop("id","PageName");
   
   var Common_Link = document.createElement("a");
   Common_Link.href = "http://kiwiirc.com/client/irc.freenode.net/#vikidia,#vikidia-fr";
   Common_Link.accesskey = "s";
   Common_Link.title = "Connection à IRC";
   Common_Link.innerHTML = "Se connecter à IRC";
   var LI = document.createElement("LI");
   LI.class = "active";
   LI.id = "pt-userscript";
   LI.appendChild(Common_Link);
   $("div#p-personal ul").append(LI);
   
   $("span[dir='auto']").prop("id","PageName");
   var Unseen = document.createElement("a");
   Unseen.href =  "http://fr.vikidia.org/wiki/Projet:Maintenance";
   Unseen.innerHTML = "Maintenance générale";
 
   var UnseenLI = document.createElement("LI");
   UnseenLI.appendChild(Unseen);
   $("#p-Contribuer .body ul").append(UnseenLI);
   $("#wpSummary").prop("autocomplete","off");
 
}());
assombrirPagePOE("cookieVerif"); // vérification du cookie
 
/**
 * Outils pour réverter
 *
 * fournit des liens dans les pages de diff pour révoquer facilement une modification et avertir son auteur
 *
 * Auteurs : Lorian (en), Chphe (fr)
 * Dernière révision : 27 décembre 2013 — séparation des annulations et révocations
 * {{Projet:JavaScript/Script|RevertDiff}}
 */
//<nowiki>
var RevertDiffParams = new Object();
 
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:'{{subst:Averto-0}}~~~~'},
  {urlparam:"warn=02", text:"Averto-1",   template:'{{subst:Averto-1}}~~~~'},
  {urlparam:"warn=06", text:"Spam0", template:'{{subst:Averto-spam-0}}~~~~'},
  {urlparam:"warn=07", text:"Spam1", template:'{{subst:Averto-spam-1}}~~~~'},
  {urlparam:"warn=08", text:"Bienvenue",    template:'{{Bienvenue}}~~~~'},
  {urlparam:"warn=09", text:"BienvenueIP",  template:'{{Bienvenue IP}}~~~~'},
  {urlparam:"warn=10", text:"MerciIP",      template:'{{MerciIP}}~~~~'},
  {urlparam:"warn=10", text:"Bac à sable",      template:'{{SUBST:Utilisateur:Rififi2}}~~~~'}
];
 
 
function getURLParameters(x) {
  var questionMark = x.indexOf('?');
  if (questionMark == -1) return {}
  var fieldsArray = x.substr(questionMark + 1).split('&');
  var fields = {}
  for (var i = 0; i < fieldsArray.length; i++) {
    var field = fieldsArray[i];
    var equal = field.indexOf('=');
    if (equal == -1) {
      fields[decodeURIComponent(field)] = '';
    } else {
      fields[decodeURIComponent(field.substr(0, equal))] =
          decodeURIComponent(field.substr(equal + 1));
    }
  }
  return fields;
}
 
_GET = getURLParameters(location.href);
 
function getMessage (chemin, where, user1, user2) {
  var message = prompt (RevertDiffParams.Text.MessageAlert, '');
  if (message) {
    window.location = chemin + '&'+where+'=2&user1='+user1+'&user2='+user2+'&message='+message;
  }
}
 
$(document).ready(function (){
  if (location.href.match(/diff=/)) {
    // Get username of submitter
    var user1TD = $('td.diff-otitle')[0];
    var user2TD = $('td.diff-ntitle')[0];
    if(!user1TD || !user2TD) return;
 
    // Récupération du chemin vers la version à rétablir
    var chemin = encodeURI(user1TD.getElementsByTagName('a')[1].href);
 
    var user1 = $(user1TD).find('a.mw-userlink')[0].innerHTML;
    var user2 = $(user2TD).find('a.mw-userlink')[0].innerHTML;
 
    var Annul = '('
               + '<a href="'+chemin+'&annul=1&user1='+user1+'&user2='+user2+'">'+RevertDiffParams.Text.Annul+'</a>'
               + ' / '
               + '<a href="javascript:getMessage(\''+chemin+'\',\'annul\',\''+user1+'\',\''+user2+'\');">'+RevertDiffParams.Text.Message+'</a>'
               + ')';
 
    var Revert = '('
               + '<a href="'+chemin+'&revert=1&user1='+user1+'&user2='+user2+'">'+RevertDiffParams.Text.Revert+'</a>'
               + ' / '
               + '<a href="javascript:getMessage(\''+chemin+'\',\'revert\',\''+user1+'\',\''+user2+'\');">'+RevertDiffParams.Text.Message+'</a>'
               + ')';
 
    var Warn = '('+RevertDiffParams.Text.Warn+' : ';
    var SiteURL = mw.config.get('wgServer') + mw.config.get('wgScript') + '?title=';
    for(var a=0,l=RevertDiffParams.Warn.length;a<l;a++){
        if(a!=0) Warn += ' / ';
        Warn += '<a href="'+SiteURL+'User_talk:'+user2+'&action=edit&section=new'
              + '&'+RevertDiffParams.Warn[a].urlparam+'" '
              + 'title="'+RevertDiffParams.Warn[a].template+'" '
              + '>'+RevertDiffParams.Warn[a].text+'</a>';
    }
    Warn += ')';
    document.getElementById('contentSub').innerHTML = Annul + " " + Revert + " " + Warn;
 
  }else if (location.href.match(/annul=1/)) {
    document.getElementById('wpSummary').value = RevertDiffParams.Text.AnnulResume.split("$1").join(_GET['user1']).split("$2").join(_GET['user2']);
    document.getElementById('editform').submit();
  }else if (location.href.match(/annul=2/)) { 
    document.getElementById('wpSummary').value = 
RevertDiffParams.Text.AnnulResume.split("$1").join(_GET['user1']).split("$2").join(_GET['user2']) + ' : '+_GET['message'];
    document.getElementById('editform').submit();
  }else if (location.href.match(/revert=1/)) {
    document.getElementById('wpSummary').value = RevertDiffParams.Text.RevertResume.split("$1").join(_GET['user1']).split("$2").join(_GET['user2']);
    document.getElementById('editform').submit();
  }else if (location.href.match(/revert=2/)) { 
    document.getElementById('wpSummary').value = 
RevertDiffParams.Text.RevertResume.split("$1").join(_GET['user1']).split("$2").join(_GET['user2']) + ' : '+_GET['message'];
    document.getElementById('editform').submit();
  }else{  
    for(var a=0,l=RevertDiffParams.Warn.length;a<l;a++){
      var Warn = RevertDiffParams.Warn[a];
      if (location.href.match(new RegExp(Warn.urlparam))) {
        var Template = Warn.template;
        Template = Template.split('$page').join(''); // mw.config.get('wgPageName').replace(/_/g, " "));
        Template = Template.split('$user').join(mw.config.get('wgUserName'));
        document.getElementById('wpTextbox1').value = Template;
        document.getElementById('editform').submit();
      }
    }
  }
});
//</nowiki>

/*
 * Résumé Deluxe
 *
 * Ajoute des commentaires de modification prédéfinis
 *
 * Auteur : Dake
 * Contributions : Pabix, Tieno, Ltrlg
 * Date de dernière révision : 3 janvier 2014
 * 
 * Dépendances :
 *  — les habituelles implicites 'mediawiki' & 'jquery' ;
 *  — 'user' (chargement du common.js).
 * 
 * {{Projet:JavaScript/Script|ResumeDeluxe}}
 */

var
	
	/*
	 * Vérifier la présence d’un titre de section _ou_ de la chaîne
	 * 'Introduction : ' ; cette dernière est ajoutée par
	 * [[MediaWiki:Gadget-EditZeroth.js]] (avec quelques variations possibles
	 * pour ceux qui le retaperaient à la main).
	 * Cela permet de n’ajouter un séparateur ' ; ' entre deux résumés que si
	 * nécessaire.
	 * Note : on ne vérifie que le fait que le motif est en fin de chaîne, pas
	 * en début.
	 */
	sansPointVirgule = /(\*\/\s*|Introduction\s?:\s?)$/,
	
	/*
	 * La liste des liens qui seront affichés.
	 * Les éléments du tableau sont d’une des deux formes suivantes :
	 *   — [ 'lien' , 'resume' ]
	 *   — 'texte'
	 * où 'lien' représente l’intitulé du lien, 'resume' le résumé d’édition
	 * inséré par le lien et 'texte' les deux à la fois.
	 */
	listeLiens = [],
	
	/*
	 * Liens affichés par défaut, même format que listeLiens.
	 */
	liensParDefaut = [
		'orthographe',
		'typographie',
		'catégorisation',
		'wikification',
		'image',
		'mise en forme',
                'avancement',
		'mise en page',
		'redirection',
		'relecture',
		'style',
		'revert',
		'réorganisation',
		'réponse',
                'nouveau message',
		'maintenance',
		['homonymie', 'création homonymie'],
		['bandeau', 'ajout de bandeau'],
		'infobox',
		'références',
		'retouche de la modification précédente'
	],
	
	/*
	 * Objet permettant de désactiver des liens (parmi la liste par défaut
	 * ci-avant), sous la forme { 'lien1': false, 'lien2': false, … } où
	 * 'lien1', 'lien2'… est l’intitulé du lien à ne pas afficher.
	 */
	liensAffiches = window.ResumeDeluxe_affiches || {},
	
	/*
	 * Objet jQuery contenant l’<input> ou le <textarea> constituant le résumé
	 */
	$resume,
	
	/*
	 * Objet jQuery contenant la liste de liens
	 */
	$liste;

/*
 * Fonction renvoyant l’intitulé d’un lien à partir de sa représentation sous
 * forme de tableau ou de chaîne.
 */
function texteDuLien( definition ) {
	if ( $.isArray( definition ) ) {
		return definition[0];
	} else {
		// Soyons sûr d’avoir une chaîne de caractères
		return definition.toString();
	}
}

/*
 * Fonction renvoyant le texte ajouté par un lien à partir de sa représentation
 * sous forme de tableau ou de chaîne.
 */
function resumeAInserer( definition ) {
	if ( $.isArray( definition ) ) {
		return definition[1];
	} else {
		// Soyons sûr d’avoir une chaîne de caractères.
		return definition.toString();
	}
}

/*
 * Procédure transformant l’ancien format de configuration pour la
 * compatibilité.
 */
function transformerAncienneConfiguration() {
	var i;
	if (
		// Appliqué seulement si le nouveau format n’existe pas
		! $.isArray( window.ResumeDeluxe_liens ) &&
		// Les deux tableaux doivent exister
		$.isArray( window.resumedeluxeTitles ) &&
		$.isArray( window.resumedeluxeInputs ) &&
		// Les deux tableaux doivent avoir la même longueur
		window.resumedeluxeTitles.length == window.resumedeluxeInputs.length
	) {
		window.ResumeDeluxe_liens = [];
		for ( i = 0; i < window.resumedeluxeTitles.length; i++ ) {
			window.ResumeDeluxe_liens.push( [
				window.resumedeluxeTitles[i].replace( /^.\s+/, '' ),
				window.resumedeluxeInputs[i]
			] );
		}
	}
}

/*
 * Procédure appliquant les préférences de l’utilisateur :
 *   — si l’utilisateur a défini window.ResumeDeluxe_liens, celui-ci est utilisé
 *     à la place de la liste par défaut liensParDefaut ;
 *   — sinon si l’utilisateur a défini window.ResumeDeluxe_affiches, les règles
 *     de désactivation sont appliquées ;
 *   — sinon liensAffiches est un objet vide, donc la liste par défaut est
 *     utilisée.
 */
function appliquerConfiguration() {
	var i, cle;
	
	if ( $.isArray( window.ResumeDeluxe_liens ) ) {
		listeLiens = window.ResumeDeluxe_liens;
	} else {
		for ( i = 0; i < liensParDefaut.length; i++ ) {
			cle = texteDuLien( liensParDefaut[i] );
			if ( liensAffiches[cle] !== false ) {
				listeLiens.push( liensParDefaut[i] );
			}
		}
	}
}

/*
 * Procedure effectuant l’ajout d’une chaîne au résumé d’édition, avec un
 * séparateur si besoin
 */
function ajouterAuResume( chaine ) {
	var resumeActuel = $resume.val();
	if ( resumeActuel === '' ) {
		$resume.val( chaine );
	} else if ( sansPointVirgule.test( resumeActuel ) ) {
		$resume.val( resumeActuel + chaine );
	} else {
		$resume.val( resumeActuel + ' ; ' + chaine );
	}
	
	// L’ÉditeurVisuel ne se base plus sur le contenu mais sur l’évènement
	$resume.change();
}

/* 
 * Fonction renvoyant un lien à partir de sa définition
 */
function $lien( definition ) {
	var resume = resumeAInserer( definition );
	return $( '<a>' )
		.text( texteDuLien( definition ) )
		.attr( {
			href: '#',
			title: 'Ajouter «\xA0' + resume + '\xA0» au résumé de modification'
		} )
		.click( function () {
			ajouterAuResume( resume );
			return false;
		} );
}

/*
 * Procédure construisant la liste de liens
 */
function contruireListe() {
	var i;
	
	$cont = $( '<div>' ).attr( 'id', 'ResumeDeluxe' )
		.text( 'Messages prédéfinis\xA0: ' )
		.append( $lien( listeLiens[0] ) );
	
	for( i = 1; i < listeLiens.length; i++ ) {
		$cont
			.append( document.createTextNode( '\xA0• ' ) )
			.append( $lien( listeLiens[i] ) );
	}
}

/*
 * Procédure initialisant $resume et insérant la liste de liens dans le cas de
 * l’éditeur de wikicode, quand les nœuds nécessaires sont en place.
 */
function demarrer_wikicode() {
	$( document ).ready( function () {
		$( '#wpSummaryLabel' ).before( $cont );
		$resume = $( '#wpSummary' );
	});
}

/*
 * Procédure initialisant $resume et insérant la liste de liens dans le cas de
 * l’ÉditeurVisuel, quand les nœuds nécessaires sont en place.
 */
function demarrer_EditeurVisuel() {
	mw.hook( 've.saveDialog.stateChanged' ).add( function () {
		/*
		 * Traitement : si le dialogue a été recréé, on y remet ce qu’il faut.
		 * TODO Vérifier si cette vérification est encore nécessaire.
		 */
		if ( $( '#ResumeDeluxe' ).size() < 1 ) {
			$( '#MediaWiki-summary' ).after( $cont );
			$resume = $( '.ve-ui-mwSaveDialog-summary textarea' );
		}
	});
}

/*
 * Procédure qui détermine quel éditeur peut être utilisé et démarre le gadget 
 * selon le résultat.
 */
function demarrer() {
	switch( mw.config.get( 'wgAction' ) ) {
		case 'edit':
		case 'submit':
			// Désactivé pour la création de sections
			if ( ! /(\?|&)section=new(&|$)/.test( document.location.search ) ) {
				demarrer_wikicode();
			}
			break;
		case 'view':
			demarrer_EditeurVisuel();
			break;
	}
}

/*
 * Démarrage du tout
 */
// Compatibilité avec l’ancien format de configuration
transformerAncienneConfiguration();
// Lecture des préférences
appliquerConfiguration();
// Construction de la liste des liens
contruireListe();
// Insère la liste dans l’arbre des nœuds et cherche le nœud contenant le résumé
demarrer();
importScript('Utilisateur:Linedwell/HotCatsMulti.js')
importScript('Utilisateur:Linedwell/quickeditcounter.js'); //affiche sur la PU des utilisateurs leur nombre d'éditions 
 
 
//============================================================
// 
// Divers
// 
//============================================================
 
/**
 
 
* Références vers les expressions mathématiques, avec {{ligne math}} et {{ref math}}
 */
 
function reinit_ref_math(ligne){
  // Annule l’effet de mise en évidence de {{ligne_math||n}}
  ligne.style.borderRadius="0";
  ligne.style.backgroundColor="transparent";
  ligne.style.opacity="1";
  ligne.style.boxShadow="none";
  ligne.setAttribute("onclick","");
}
function retour_ref_math(n){
  // Met en évidence l’expression mathématique {{ligne math}} correspondant au nombre n
  var ligne = document.getElementById('ligneMath-'+n);
  ligne.style.borderRadius="12px";
  ligne.style.backgroundColor="white";
  ligne.style.opacity="0.75";
  ligne.style.boxShadow="1px 1px 12px #555";
    // Prévoir la disparition de l’effet de mise en valeur :
  ligne.setAttribute("onclick","reinit_ref_math(this)");
}
function gestion_ref_math(){
  var spans = document.getElementsByTagName("span");
  var rgx = /#ligneMath-(\d+)$/;
  for(var i=0;i<spans.length;i++){
    if(spans[i].className=="lienRefMath"){
      spans[i].setAttribute("onclick",'retour_ref_math("'+(rgx.exec(spans[i].firstElementChild.href)[1])+'");');
    }
  }
}
addLoadEvent(gestion_ref_math);
 
 
 
//============================================================
// Modèles de vote
//============================================================
 
addCustomButton('http://download.vikidia.org/vikidia/fr/images/9/95/No_trash_icon.png','Conserver',"# {{Conserver}} Motivation + Signature");
addCustomButton('http://download.vikidia.org/vikidia/fr/images/8/8f/Nuvola_gnome-fs-trash-full.png','Supprimer',"# {{Supprimer}} Motivation + Signature");
addCustomButton('http://download.vikidia.org/vikidia/fr/images/a/ab/Symbole_vote_pour.png','Pour',"# {{Pour}} Motivation + Signature");
addCustomButton('http://download.vikidia.org/vikidia/fr/images/f/fa/Symbole_vote_plut%C3%B4t_pour.svg','Plutôt pour',"# {{Plutôt pour}} Motivation + Signature");
addCustomButton('http://download.vikidia.org/vikidia/fr/images/3/31/Symbole_vote_plut%C3%B4t_contre.png','Plutôt contre',"# {{Plutôt contre}} Motivation + Signature");
addCustomButton('http://download.vikidia.org/vikidia/fr/images/b/be/Symbole_vote_contre.png','Contre',"# {{Contre}} Motivation + Signature");
addCustomButton('http://download.vikidia.org/vikidia/fr/images/b/b2/Symbole_vote_neutre.png','Neutre',"# {{Neutre}} Motivation + Signature");
 
 
 
//============================================================
//
// Caractères spéciaux
//
//============================================================
 
/**
 * Ajoutez le menu pour choisir des sous-ensembles de caractères spéciaux
 * @note	L'ordre de cette liste doit correspondre a celui de MediaWiki:Edittools !
 */
function addCharSubsetMenu() {
  var specialchars = document.getElementById('specialchars');
 
  if (specialchars) {
    var menu = "<select style=\"display:inline\" onChange=\"chooseCharSubset(selectedIndex)\">";
    menu += "<option>Wiki</option>";
 
    menu += "</select>";
    specialchars.innerHTML = menu + specialchars.innerHTML;
 
    /* default subset - try to use a cookie some day */
    chooseCharSubset(0);
  }
}
 
/* select subsection of special characters */
function chooseCharSubset(s) {
  var l = document.getElementById('specialchars').getElementsByTagName('p');
  for (var i = 0; i < l.length ; i++) {
    l[i].style.display = i == s ? 'inline' : 'none';
    l[i].style.visibility = i == s ? 'visible' : 'hidden';
  }
}
 
addOnloadHook(addCharSubsetMenu);

//mw.loader.load('Utilisateur:Linedwell/quickeditcounter.js'); //affiche sur la PU des utilisateurs leur nombre d'éditions
$(document).ready(function addLinksInLeftBar() {
	//ajouter des liens en bas de la boite "navigation"
	mw.util.addPortletLink('p-Navigation', '/wiki/Vikidia:Bulletin_des_administrateurs', 'Bulletin des admins', 'n-buladm');
	mw.util.addPortletLink('p-Navigation', '/wiki/Vikidia:Demandes aux administrateurs', 'Requêtes aux administrateurs', 'n-dadm');
	mw.util.addPortletLink('p-Navigation', '/wiki/Vikidia:Demandes aux bureaucrates', 'Requêtes aux bureaucrates', 'n-dbubu');
	mw.util.addPortletLink('p-Navigation', '/wiki/Vikidia:Demandes aux développeurs', 'Requêtes aux développeurs', 'n-ddev');
 
	//non pertinent sur les pages Spéciales
	if(mw.config.get('wgNamespaceNumber') != -1) {
		//ajouter des liens en bas de la boite "boîte à outils"
		mw.util.addPortletLink('p-tb', '/wiki/Spécial:Index/' + mw.config.get('wgPageName'), 'Sous-pages', 'tb-subpages');
 
		//ajouter des onglets en haut de la page 
		mw.util.addPortletLink('p-cactions', '/wiki/Spécial:Journal?page=' + mw.config.get('wgPageName'), 'Journal', 'p-log');
		mw.util.addPortletLink('p-cactions', '/wiki/' + mw.config.get('wgPageName') +'?action=purge', 'Purge', 'p-purge');
	}
});

mw.loader.load('/index.php?title=User:Saint/common.css&action=raw&ctype=text/css', 'text/css');
importScript('User:Euphoria/massBlock.js'); // Backlink: [[User:Euphoria/massBlock.js]]
/**
 * PageCreatorInfo.js
 * Developer: Saroj
 * Date: 2023-12-26
 * 
 * This script fetches and displays the name of the creator of a MediaWiki page along with 
 * their total number of edits on the site. It is designed for MediaWiki environments.
 */

$(document).ready(function() {
    // Only execute in view mode
    if (mw.config.get('wgAction') === "view") {
        var apiURL = mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php';
        var wikiURL = mw.util.getUrl('');

        // Fetches the creator of the current page
        function fetchPageCreator() {
            $.ajax({
                url: apiURL,
                data: {
                    action: 'query',
                    format: 'json',
                    titles: mw.config.get('wgPageName'),
                    prop: 'revisions',
                    rvlimit: 1,
                    rvdir: 'newer',
                    rvprop: 'user'
                },
                dataType: 'json',
                success: function(response) {
                    var pageId = Object.keys(response.query.pages)[0];
                    fetchUserEditCount(response.query.pages[pageId].revisions[0].user);
                }
            });
        }

        // Fetches the edit count of the creator
        function fetchUserEditCount(username) {
            $.ajax({
                url: apiURL,
                data: {
                    action: 'query',
                    format: 'json',
                    list: 'users',
                    ususers: username,
                    usprop: 'editcount'
                },
                dataType: 'json',
                success: function(response) {
                    displayCreator(username, response.query.users[0].editcount);
                }
            });
        }

        // Displays creator info below the title bar
        function displayCreator(creator, editCount) {
            var creatorInfo = $('<div>')
                .append('Page created by: ')
                .append($('<a>').attr('href', wikiURL + 'User:' + encodeURIComponent(creator)).text(creator).css({'color': '#0645ad'}))
                .append(' (')
                .append($('<a>').attr('href', wikiURL + 'Special:Contributions/' + encodeURIComponent(creator)).text(editCount + ' edits').css({'color': '#0645ad'}))
                .append(')')
                .css({'font-size': '84%', 'color': '#666', 'margin-top': '5px'});

            $('#bodyContent').prepend(creatorInfo);
        }

        fetchPageCreator();
    }
});
importScript('User:Euphoria/नेपालीकरण.js'); // Backlink: [[User:Euphoria/नेपालीकरण.js]]
importScript('User:Euphoria/massBlock.js'); // Backlink: [[User:Euphoria/massBlock.js]]
importScript('User:X/common.js'); // Backlink: [[User:X/common.js]]
importScript('User:Rafdodo/smartpatrol.js'); // Backlink: [[User:Rafdodo/smartpatrol.js]]
importScript('User:Rafdodo/confirmlogout.js'); // Backlink: [[User:Rafdodo/confirmlogout.js]]
importScript('User:Rafdodo/livenotifs.js'); // Backlink: [[User:Rafdodo/livenotifs.js]]
importScript('User:Rafdodo/revertdiff.js'); // Backlink: [[User:Rafdodo/revertdiff.js]]
importScript('User:Drummingman/common.js'); // Backlink: [[User:Drummingman/common.js]]
importScript('User:Rafdodo/blockanddiscuss.js'); // Backlink: [[User:Rafdodo/blockanddiscuss.js]]
importScript('User:Rafdodo/subpages.js'); // Backlink: [[User:Rafdodo/subpages.js]]
importScript('User:Rafdodo/changecategory.js'); // Backlink: [[User:Rafdodo/changecategory.js]]
importScript('User:3PPYB6/redwarnConfig.js'); // Backlink: [[User:3PPYB6/redwarnConfig.js]]
importScript('User:JJBullet/common.js'); // Backlink: [[User:JJBullet/common.js]]
importScript('User:MacFan4000/grantAdmin.js'); // Backlink: [[User:MacFan4000/grantAdmin.js]]
importScript('User:Saint/common.js'); // Backlink: [[User:Saint/common.js]]
importScript('User:Ahecht/useridentifier.js'); // Backlink: [[User:Ahecht/useridentifier.js]]
importScript('User:Ahecht/common.js'); // Backlink: [[User:Ahecht/common.js]]
importScript('User:Rafdodo/qualitybutton.js'); // Backlink: [[User:Rafdodo/qualitybutton.js]]
importScript('User:Rafdodo/modifysection.js'); // Backlink: [[User:Rafdodo/modifysection.js]]
importScript('User:Rafdodo/grantadmin.js'); // Backlink: [[User:Rafdodo/grantadmin.js]]
importScript('User:Rafdodo/snowflake.js'); // Backlink: [[User:Rafdodo/snowflake.js]]
importScript('User:Rafdodo/common2.js'); // Backlink: [[User:Rafdodo/common2.js]]