Utilisateur:Kelam/vector.js
Note : après avoir enregistré la page, vous devrez forcer le rechargement complet du cache de votre navigateur pour voir les changements.
Mozilla / Firefox / Konqueror / Safari : maintenez la touche Majuscule (Shift) en cliquant sur le bouton Actualiser (Reload) ou pressez Maj-Ctrl-R (Cmd-R sur Apple Mac) ;
Chrome / Internet Explorer / Opera : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5.var suiviManagerAllPages = new Array();
function SuiviManagerRegexp(regexp)
{
var match = new RegExp(regexp);
for (var i=0;i<suiviManagerAllPages.length;i++) {
var pageName = suiviManagerAllPages[i].childNodes[0].getAttribute("value");
if (match.test(pageName)) {
suiviManagerAllPages[i].childNodes[0].checked=true;
}
}
}
function SuiviManagerLiensRouges()
{
for (var i=0;i<suiviManagerAllPages.length;i++) {
var pageClass = suiviManagerAllPages[i].childNodes[1].getAttribute("class");
if (pageClass && pageClass=="new") {
suiviManagerAllPages[i].childNodes[0].checked=true;
}
}
}
function SuiviManagerDeselect()
{
for (var i=0;i<suiviManagerAllPages.length;i++) {
suiviManagerAllPages[i].childNodes[0].checked=false;
}
}
function SuiviManager() {
if (mw.config.get('wgCanonicalSpecialPageName') !== 'EditWatchlist') return;
var a=0;
var b=0;
var interfaceMsg = new Array();
var regexpList = new Array();
//////////////////////////////////////////////////
// Expressions régulières et liens de l'interface
//
// besoin d'aide pour les regexp ?
// http://www.commentcamarche.net/javascript/jsregexp.php3
//////////////////////////////////////////////////
interfaceMsg[a++] = "<b>Tout cocher</b>";
regexpList[b++] = "^.*";
interfaceMsg[a++] = "Utilisateurs";
regexpList[b++] = "^Utilisateur:";
interfaceMsg[a++] = "Wikipédia:*";
regexpList[b++] = "^Wikipédia:";
interfaceMsg[a++] = "Sous-pages de PàS";
regexpList[b++] = "^Wikipédia:Pages à supprimer\/";
interfaceMsg[a++] = "Sous-pages de PàV";
regexpList[b++] = "^Wikipédia:Pages à vérifier\/";
interfaceMsg[a++] = "Pages du bistro";
regexpList[b++] = "^Wikipédia:Le Bistro\/";
interfaceMsg[a++] = "Images";
regexpList[b++] = "^Image:";
interfaceMsg[a++] = "Modèles";
regexpList[b++] = "^Modèle:";
interfaceMsg[a++] = "Aide";
regexpList[b++] = "^Aide:";
interfaceMsg[a++] = "Catégories";
regexpList[b++] = "^Catégorie:";
interfaceMsg[a++] = "Portails";
regexpList[b++] = "^Portail:";
//////////////////////////////////////////////////
var topTag = document.getElementById("contentSub")
// récupère toutes les pages
var watchlist = document.getElementsByTagName("ul");
for (u=0;u<watchlist.length;u++) {
var entries = watchlist[u].getElementsByTagName("li");
for (i=0;i<entries.length;i++) {
suiviManagerAllPages.push(entries[i]);
}
}
// prépare la mini-interface
var str = "<div style=\"background-color:#8ecfe4;font-size:1px;height:8px;border:1px solid #AAAAAA;-moz-border-radius-topright:0.5em;-moz-border-radius-topleft:0.5em;\"></div>"
+ "<div style=\"border:1px solid #6ac1de;border-top:0px solid white;padding:5px 5px 0 5px;margin-bottom:3ex;\"><p>"
+ "<div style=\"float: left; text-align: left; white-space: nowrap;\"></div>"
for (var cpt = 0; cpt < interfaceMsg.length; cpt ++) {
str += "<a href=\"javascript:SuiviManagerRegexp('" + regexpList[cpt] + "')\">"
+ interfaceMsg[cpt]
+ " ·</a> "
}
str += "<a href=\"javascript:SuiviManagerLiensRouges()\">"
+ "Retirer les liens rouges"
+ " ·</a> "
str += "<a href=\"javascript:SuiviManagerDeselect()\">"
+ "<b>Enlever toutes les coches</b>"
+ " ·</a> "
topTag.innerHTML = topTag.innerHTML + "<br clear=all />" + str + "<p></div>"
}
$(SuiviManager);
var alwaysEval = false; //mettez cette valeur à ''true'' si vous voulez que l'évaluation soit lancée automatiquement (à éviter en temps normal)
function initEvalProjectNames()
{
evalProjectNames=new Array(); //liste de vos projets
evalProjectNames.push("ABDA")
evalProjectNames.push("Télévision")
evalProjectNames.push("Jeu vidéo")
}
// [[:en:User:Lupin/popups.js]]
// Traduction de [[Utilisateur:Leag|Leag]] : [[Utilisateur:Leag/Navigation popups|Navigation popups]]
importScript('MediaWiki:Gadget-Popups.js');
var tabAction = "p-cactions";
function addJapanButton()
{
// condition à améliorer
var toolbar = document.getElementById("toolbar");
if (!toolbar) return;
var l = document.getElementById(tabAction);
t = l.innerHTML;
ind = t.toLowerCase().indexOf("</ul>");
before = t.substring(0,ind);
after = t.substring(ind);
pitem = "<li><a href='javascript:hepburn();' accesskey=\">\">"+
"<div id='japan' style='display:inline;'>" +
"Hepburn" +
"</div></a></li>";
l.innerHTML = before + pitem + after ;
}
function hepburn() {
var txt = document.editform.wpTextbox1;
txt.focus();
if ( window.getSelection )
{
// mozilla
if( txt.selectionStart || txt.selectionStart == '0')
{
var text = txt.value.substring(txt.selectionStart, txt.selectionEnd);
var s2 = txt.value;
text = text.replace(new RegExp("aa", "g"), "ā").replace(new RegExp("Aa", "g"), "Ā");
// La norme Hepburn réserve la conversion suivante aux noms non-sino-japonais.
//text = text.replace(new RegExp("ii", "g"), "ī").replace(new RegExp("Ii", "g"), "Ī");
text = text.replace(new RegExp("ee", "g"), "ē").replace(new RegExp("Ee", "g"), "Ē");
text = text.replace(new RegExp("uu", "g"), "ū").replace(new RegExp("Uu", "g"), "Ū");
text = text.replace(new RegExp("oo", "g"), "ō").replace(new RegExp("Oo", "g"), "Ō");
text = text.replace(new RegExp("ou", "g"), "ō").replace(new RegExp("Ou", "g"), "Ō");
text = text.replace(new RegExp("â", "g"), "ā").replace(new RegExp("Â", "g"), "Ā");
// La norme Hepburn réserve la conversion suivante aux noms non-sino-japonais.
//text = text.replace(new RegExp("î", "g"), "ī").replace(new RegExp("Î", "g"), "Ī");
text = text.replace(new RegExp("ê", "g"), "ē").replace(new RegExp("Ê", "g"), "Ē");
text = text.replace(new RegExp("û", "g"), "ū").replace(new RegExp("Û", "g"), "Ū");
text = text.replace(new RegExp("ô", "g"), "ō").replace(new RegExp("Ô", "g"), "Ō");
text = text.replace(new RegExp("cch", "g"), "tch");
var savestart = txt.selectionStart;
txt.value = s2.substring(0, txt.selectionStart)
+ text
+ s2.substr(txt.selectionEnd);
txt.selectionStart = savestart + text.length;
txt.selectionEnd = savestart + text.length;
}
}
else if( document.getSelection )
{
// Safari/Konqueror
var text = document.getSelection( ).replace(new RegExp("aa", "g"), "ā");
//Manque la suite...
}
else
{
// internet explorer
var range = document.selection.createRange();
var text = range.text;
text = text.replace(new RegExp("aa", "g"), "ā").replace(new RegExp("Aa", "g"), "Ā");
// La norme Hepburn réserve la conversion suivante aux noms non-sino-japonais.
//text = text.replace(new RegExp("ii", "g"), "ī").replace(new RegExp("Ii", "g"), "Ī");
text = text.replace(new RegExp("ee", "g"), "ē").replace(new RegExp("Ee", "g"), "Ē");
text = text.replace(new RegExp("uu", "g"), "ū").replace(new RegExp("Uu", "g"), "Ū");
text = text.replace(new RegExp("oo", "g"), "ō").replace(new RegExp("Oo", "g"), "Ō");
text = text.replace(new RegExp("ou", "g"), "ō").replace(new RegExp("Ou", "g"), "Ō");
text = text.replace(new RegExp("â", "g"), "ā").replace(new RegExp("Â", "g"), "Ā");
// La norme Hepburn réserve la conversion suivante aux noms non-sino-japonais.
//text = text.replace(new RegExp("î", "g"), "ī").replace(new RegExp("Î", "g"), "Ī");
text = text.replace(new RegExp("ê", "g"), "ē").replace(new RegExp("Ê", "g"), "Ē");
text = text.replace(new RegExp("û", "g"), "ū").replace(new RegExp("Û", "g"), "Ū");
text = text.replace(new RegExp("ô", "g"), "ō").replace(new RegExp("Ô", "g"), "Ō");
text = text.replace(new RegExp("cch", "g"), "tch");
range.text = text;
}
}
function customSpecialChars()
{
var elmtP = document.getElementById("editpage-copywarn")
if (elmtP == undefined)
return // Pas en édition
//elmtP = elmtP.getElementsByTagName("table")[0]
var str = "Caractères spéciaux: "
str += "<a href=\"javascript:insertTags('Ā','', '')\" accesskey=\",\">Ā</a> "
str += "<a href=\"javascript:insertTags('ā','', '')\" accesskey=\"a\">ā</a> "
str += "<a href=\"javascript:insertTags('Ē','', '')\" accesskey=\";\">Ē</a> "
str += "<a href=\"javascript:insertTags('ē','', '')\" accesskey=\"f\">ē</a> "
str += "<a href=\"javascript:insertTags('Ī','', '')\" accesskey=\":\">Ī</a> "
str += "<a href=\"javascript:insertTags('ī','', '')\" accesskey=\"i\">ī</a> "
str += "<a href=\"javascript:insertTags('Ō','', '')\" accesskey=\"!\">Ō</a> "
str += "<a href=\"javascript:insertTags('ō','', '')\" accesskey=\"o\">ō</a> "
str += "<a href=\"javascript:insertTags('Ū','', '')\" accesskey=\"ù\">Ū</a> "
str += "<a href=\"javascript:insertTags('ū','', '')\" accesskey=\"v\">ū</a> "
elmtP.innerHTML = "<br/ ><center>" + str + "</center><br />" + elmtP.innerHTML
}
// Quick-replacer pour rectifier les mots sans diacritique triviaux sur les pages japonaises
var tabAction = "p-cactions";
function addAutoMacronButton()
{
// condition à améliorer
var toolbar = document.getElementById("toolbar");
if (!toolbar) return;
var l = document.getElementById(tabAction);
t = l.innerHTML;
ind = t.toLowerCase().indexOf("</ul>");
before = t.substring(0,ind);
after = t.substring(ind);
pitem = "<li><a href='javascript:macron();' accesskey=\"²\">"+
"<div id='macron' style='display:inline;'>" +
"Macron" +
"</div></a></li>";
l.innerHTML = before + pitem + after ;
}
function macron() {
var txt = document.editform.wpTextbox1;
txt.focus();
if ( window.getSelection )
{
// mozilla
if( txt.selectionStart || txt.selectionStart == '0')
{
var text = txt.value.substring(txt.selectionStart, txt.selectionEnd);
var s2 = txt.value;
text = text.replace(new RegExp("Tokyo", "g"), "Tōkyō");
text = text.replace(new RegExp("Kobe", "g"), "Kōbe");
text = text.replace(new RegExp("Keiō", "g"), "Keiō");
text = text.replace(new RegExp("Saikyo", "g"), "Saikyō");
text = text.replace(new RegExp("Chuo", "g"), "Chūō");
text = text.replace(new RegExp("Toei Oedo", "g"), "Toei Ōedo");
text = text.replace(new RegExp("Odakyu", "g"), "Odakyū");
text = text.replace(new RegExp("Hanzomon", "g"), "Hanzōmon");
text = text.replace(new RegExp("Tokyu", "g"), "Tōkyū");
text = text.replace(new RegExp("Koto", "g"), "Kōtō");
text = text.replace(new RegExp("Keiyo", "g"), "Keiyō");
text = text.replace(new RegExp("Shonan", "g"), "Shōnan");
var savestart = txt.selectionStart;
txt.value = s2.substring(0, txt.selectionStart)
+ text
+ s2.substr(txt.selectionEnd);
txt.selectionStart = savestart + text.length;
txt.selectionEnd = savestart + text.length;
}
}
}
if ((window.unsafeWindow == null ? window : unsafeWindow).MathJax == null) {
//
// Replace the span with MathJax scripts of type math/tex
//
var spans = document.getElementsByTagName('span'), count = 0;
for (var i = spans.length - 1; i >= 0; i--) {
var sp = spans[i];
if (sp.className === "tex") {
var script = document.createElement("script"); script.type = "math/tex";
if (/^\s*\$\s*([\S\s]*?)\s*\$\s*$/.test(sp.innerHTML)) {var str = '\\displaystyle '+RegExp.$1;
script.text = str.replace(/</g,' < ').replace(/>/g,' > ').replace(/ /g,'~').replace(/(\\)([NZQRC])($|[^A-Za-z])/g, '\\mathbb $2 $3').replace(/amp;/g,'&')
};
sp.parentNode.replaceChild(script,sp); count++;
}
}
if (count) {
//
// Load MathJax and have it process the page
//
var script = document.createElement("script");
script.src = "http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML"; //TeX-AMS-MML_HTMLorMML-full
var config = 'MathJax.Hub.Startup.onload()';
if (window.opera) {script.innerHTML = config} else {script.text = config}
document.getElementsByTagName("head")[0].appendChild(script);
}
}
/* adapté de [[MediaWiki:Gadget-Evaluation.js]] (version du 12 septembre 2008) par Chphe
* {{Projet:JavaScript/Script|Evaluation}}
* rajouter l'onglet suivi des users
*
*/
//<source lang=javascript>//<pre><nowiki>
if(mw.config.get('wgNamespaceNumber')==0 && mw.config.get('wgAction') == "view") addOnloadHook(ev_addEvalTab)
//rajoute l'onglet suivi des users
function ev_addEvalTab()
{
var list = document.getElementById('p-cactions')
if(!list) return
list = list.childNodes[3].childNodes[1]
var elt = document.createElement('li')
elt.innerHTML = "<a id='caa_evaluation' href='javascript:ev_launchEval()'>Évaluer</a>"
list.appendChild(elt)
$(list).removeClass("emptyPortlet");
try {if(alwaysEval){ev_launchEval()}}
catch(e){ }
}
//initialise les variables
function ev_initVars()
{
if(typeof initEvalProjectNames != "undefined")
initEvalProjectNames();
else
evalProjectNames=new Array();
try {if(evalProjectNames){}}
catch(e){ evalProjectNames = new Array() }
evaluation_multiprojets = new Object();
evaluation_multiprojets.project = new Array();
evaluation_multiprojets.importance = new Array();
evaluation_multiprojets.avancement = new Array();
evaluation_multiprojets.state = new Array();
evaluation_multiprojets.avancement_global = "?";
evaluation_multiprojets.autres = {}; // pour ramasser le reste (WP1.0, todo, wikiconcours, ...)
}
function ev_launchEval()
{
var req=new XMLHttpRequest()
var div = document.getElementById('bodyContent') // Monobook et affiliés, Vector
if(!div) div = document.getElementById('mw_contentholder'); // Moderne
if(!div) div = document.getElementById('article'); // Bleu de Cologne, Standard, Nostalgia
if(!div) return;
var dummy = new Date().getTime()
if (document.URL.match(/&printable/))
{
/* version imprimable */
return;
}
EvalDiv = document.getElementById('EvalDiv')
if(!EvalDiv)
{
EvalDiv = document.createElement('div')
EvalDiv.id = "EvalDiv"
EvalDiv.align="center"
div.parentNode.insertBefore(EvalDiv, div)
}
EvalDiv.innerHTML = "Interrogation de la page de discussion..."
ev_initVars()
req.onreadystatechange = function()
{
if(req.readyState == 4)
{
if(req.status==200)
{
ev_ExtractEvaluation(req.responseText)
ev_AddMyProjects()
ev_drawEvaluation()
}
else if(req.status==404) //la pdd n'existe pas
{
ev_AddMyProjects()
ev_drawEvaluation()
}
}//fin readyState == 4
}
req.open("GET",mw.config.get('wgScript')+"?title="+mw.config.get('wgFormattedNamespaces')[1]+":" + encodeURIComponent(mw.config.get('wgPageName')) + "&action=raw&_dum=" + dummy, true)
req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
req.send(null)
}
function ev_addCell(line, html, bgcolor)
{
return ev_addCell(line, htlk, bgcolor, 0)
}
function ev_addCell(line, html, bgcolor, colSpan)
{
var cell = line.insertCell(-1)
cell.innerHTML = html
if(colSpan != 0) cell.colSpan = colSpan;
if(bgcolor) cell.style.backgroundColor = "#" + bgcolor
return cell;
}
function ev_htmlEncode(string)
{
string = string.replace(/&/, '&');
string = string.replace(/>/, '>');
string = string.replace(/</, '<');
string = string.replace(/"/, '"');
return string
}
function ev_getRadioboxHtml(id, selected, n, prop, value)
{
if(prop == "avancement_global")
return "<input onclick='evaluation_multiprojets.avancement_global=\"" + value + "\"' name='" + id + "_mp' type='radio'" + (selected?" checked='true'/>":"/>")
else
return "<input onclick='evaluation_multiprojets." + prop + "["+n+"]=\"" + value + "\"' name='" + id + "_mp' type='radio'" + (selected?" checked='true'/>":"/>")
}
function ev_addEvalLine(tab, project, av, im, state, n)
{
var line = tab.insertRow(-1)
ev_addCell(line, '<a title="Projet:' + ev_htmlEncode(project) + '" href="https://fr.m.vvikipidea.org/wiki/Projet:' + encodeURIComponent(project) + '">' + project + "</a>")
ev_addCell(line, "<input onclick='evaluation_multiprojets.state["+n+"]=this.checked' type='checkbox'" + (state?" checked='true'/>":"/>"))
ev_addCell(line, "<input onclick='evaluation_multiprojets.avancement["+n+"] = null' name='" + n + "a_mp' type='radio'" + (av == null?" checked='true'/>":"/>"))
ev_addCell(line, ev_getRadioboxHtml(n+"a", av=="AdQ", n, "avancement", "AdQ"))
ev_addCell(line, ev_getRadioboxHtml(n+"a", av=="BA", n, "avancement", "BA"))
ev_addCell(line, ev_getRadioboxHtml(n+"a", av=="A", n, "avancement", "A"))
ev_addCell(line, ev_getRadioboxHtml(n+"a", av=="B", n, "avancement", "B"))
ev_addCell(line, ev_getRadioboxHtml(n+"a", av=="BD", n, "avancement", "BD"))
ev_addCell(line, ev_getRadioboxHtml(n+"a", av=="ébauche", n, "avancement", "ébauche"))
ev_addCell(line, ev_getRadioboxHtml(n+"a", av=="?", n, "avancement", "?"))
ev_addCell(line, ev_getRadioboxHtml(n+"i", im=="maximum", n, "importance", "maximum"))
ev_addCell(line, ev_getRadioboxHtml(n+"i", im=="élevée", n, "importance", "élevée"))
ev_addCell(line, ev_getRadioboxHtml(n+"i", im=="moyenne", n, "importance", "moyenne"))
ev_addCell(line, ev_getRadioboxHtml(n+"i", im=="faible", n, "importance", "faible"))
ev_addCell(line, ev_getRadioboxHtml(n+"i", im=="?", n, "importance", "?"))
}
function ev_drawEvaluation()
{
var tab = document.createElement("table")
var line = tab.insertRow(-1)
ev_addCell(line, "<b>Projet</b>", "F8F8F8")
ev_addCell(line, "<b>Bandeau présent</b>", "F8F8F8")
ev_addCell(line, "<b>Eval. par déf.</b>", "F8F8F8")
ev_addCell(line, "<b>AdQ</b>", "6699FF")
ev_addCell(line, "<b>BA</b>", "66FF66")
ev_addCell(line, "<b>A</b>", "66FFFF")
ev_addCell(line, "<b>B</b>", "FFFF66")
ev_addCell(line, "<b>BD</b>", "FFAA66")
ev_addCell(line, "<b>Ébauche</b>", "FF6666")
ev_addCell(line, "<b>?</b>", "F8F8F8")
ev_addCell(line, "<b>Maximum</b>", "FF00FF")
ev_addCell(line, "<b>Élevée</b>", "FF88FF")
ev_addCell(line, "<b>Moyenne</b>", "FFCCFF")
ev_addCell(line, "<b>Faible</b>", "FFEEFF")
ev_addCell(line, "<b>?</b>", "F8F8F8")
line = tab.insertRow(-1)
var av = evaluation_multiprojets.avancement_global;
ev_addCell(line, "<b>Avancement commun</b>", "F8F8F8", 3)
ev_addCell(line, ev_getRadioboxHtml("ag", av=="AdQ", null, "avancement_global", "AdQ", true))
ev_addCell(line, ev_getRadioboxHtml("ag", av=="BA", null, "avancement_global", "BA", true))
ev_addCell(line, ev_getRadioboxHtml("ag", av=="A", null, "avancement_global", "A", true))
ev_addCell(line, ev_getRadioboxHtml("ag", av=="B", null, "avancement_global", "B", true))
ev_addCell(line, ev_getRadioboxHtml("ag", av=="BD", null, "avancement_global", "BD", true))
ev_addCell(line, ev_getRadioboxHtml("ag", av=="ébauche", null, "avancement_global", "ébauche", true))
ev_addCell(line, ev_getRadioboxHtml("ag", av=="?", null, "avancement_global", "?", true))
ev_addCell(line, "", "F8F8F8", 5)
for(var i=0; i<evaluation_multiprojets.project.length; i++)
ev_addEvalLine(tab, evaluation_multiprojets.project[i], evaluation_multiprojets.avancement[i], evaluation_multiprojets.importance[i], evaluation_multiprojets.state[i], i, true)
tab.className = 'wikitable'
tab.style.textAlign = 'center'
tab.style.fontSize = '90%'
EvalDiv.innerHTML = ''
EvalDiv.appendChild(tab)
var button = document.createElement("button")
button.textContent = "Exporter cette évaluation vers la page de discussion"
button.onclick = ev_setEvaluation
button.id='EvalButton'
EvalDiv.appendChild(button)
}
//définition de la méthode indexOf et map pour les versions JavaScript inférieures à 1.6
if (!Array.prototype.indexOf)
{
Array.prototype.indexOf = function(elt /*, from*/)
{
var len = this.length;
var from = Number(arguments[1]) || 0;
from = (from < 0)
? Math.ceil(from)
: Math.floor(from);
if (from < 0)
from += len;
for (; from < len; from++)
{
if (from in this &&
this[from] === elt)
return from;
}
return -1;
};
}
if (!Array.prototype.map)
{
Array.prototype.map = function(fun /*, thisp*/)
{
var len = this.length;
if (typeof fun != "function"){
throw new TypeError();
}
var res = new Array(len);
var thisp = arguments[1];
for (var i = 0; i < len; i++)
{
if (i in this)
res[i] = fun.call(thisp, this[i], i, this);
}
return res;
};
}
function ev_AddMyProjects()
{
for(var i=0; i<evalProjectNames.length;i++)
{
if(evaluation_multiprojets.project.indexOf(evalProjectNames[i]) == -1)
{
var t = evaluation_multiprojets.project.length
evaluation_multiprojets.project[t] = evalProjectNames[i]
evaluation_multiprojets.importance[t] = "?"
evaluation_multiprojets.state[t] = false
evaluation_multiprojets.avancement[t] = null;
}
}
}
function ev_ExtractEvaluation(discussion)
{
var modeles;
discussion = " " + discussion
modeles = discussion.split(/\{\{[W|w]ikiprojet /)
modeles.shift()
var reg_plus_consultes = /{{([lL]es plus consultés\s*\|[^}]*}})/;
var m = reg_plus_consultes.exec(discussion);
if(m) { modeles.push(m[1]); }
var tab_anc_eval = new Array();
for(var i=0;i<modeles.length;i++)
{
try
{
modeles[i] = modeles[i].split("}}")[0]
var temp = modeles[i].split("|")
evaluation_multiprojets.project[i] = temp[0]
tab_anc_eval.push(temp[0])
evaluation_multiprojets.avancement[i] = "?"
evaluation_multiprojets.importance[i] = "?"
if(temp.length >= 2) ev_getOldEval(temp[1], i)
if(temp.length >= 3) ev_getOldEval(temp[2], i)
if(temp.length >= 4) ev_getOldEval(temp[3], i)
evaluation_multiprojets.state[i] = true
}
catch(e){alert(e)}
}
var reg_modele_multiprojet = /{{([wW]ikiprojet|[éÉ]valuation multiprojet)\s*\|([^}]*)}}/;
var regAv = /avancement\s*((\s\S.*)?)$/;
m = reg_modele_multiprojet.exec(discussion);
if(m)
{
var tab = m[2].split("|");
var i=0;
var ind=evaluation_multiprojets.project.length;
var tab_avancement=new Array();
while(i<tab.length)
{
var t = tab[i].split("=");
if(t.length == 2)
{
var mm = regAv.exec(t[0]);
if(mm)
{
if(mm[1] == "")
evaluation_multiprojets.avancement_global = ev_cleanAvancement(t[1].replace(/^\s+|\s+$/g, ''));
else
tab_avancement[mm[1].replace(/^\s+|\s+$/g, '')] = ev_cleanAvancement(t[1].replace(/^\s+|\s+$/g, ''));
}
else
{
evaluation_multiprojets.autres[t[0]] = t[1].replace(/^\s+|\s+$/g, '');
}
}
else if(t.length == 1)
{
var _proj =tab[i].replace(/^\s+|\s+$/g, '');
if(_proj in tab_anc_eval) { i+= 2 ; continue; }
evaluation_multiprojets.project[ind] =_proj;
if(i==tab.length-1) alert("Erreur de lecture du modèle {{éÉvaluation multiprojet}}");
evaluation_multiprojets.importance[ind] = ev_cleanImportance(tab[i+1].replace(/^\s+|\s+$/g, ''));
evaluation_multiprojets.avancement[ind] = null;
evaluation_multiprojets.state[ind] = true;
ind++;
i++;
}
i++;
}
for(var i=0; i<evaluation_multiprojets.project.length; i++)
{
if(evaluation_multiprojets.project[i] in tab_avancement)
evaluation_multiprojets.avancement[i] = tab_avancement[evaluation_multiprojets.project[i]];
}
}
}
function ev_cleanAvancement(val)
{
if(val=="AdQ") return "AdQ"
if(val=="BA") return "BA"
if(val=="A") return "A"
if(val=="B") return "B"
if(val=="BD") return "BD"
if(val=="ébauche" || val=="Ébauche") return "ébauche"
return "?"
}
function ev_cleanImportance(val)
{
if(val.toLowerCase()=="maximum" || val.toLowerCase()=="maximale") return "maximum"
if(val.toLowerCase()=="élevée") return "élevée"
if(val.toLowerCase()=="moyenne") return "moyenne"
if(val.toLowerCase()=="faible") return "faible"
return "?"
}
function ev_getOldEval(str,i)
{
var params = str.split("=")
if(params[0]=="importance") evaluation_multiprojets.importance[i] = ev_cleanImportance(params[1])
else if(params[0]=="avancement") evaluation_multiprojets.avancement[i] = ev_cleanAvancement(params[1])
}
function ev_setEvaluation()
{
document.getElementById("EvalButton").disabled = true
wpEditPage("Discuter:" + mw.config.get('wgPageName'), {}, ev_editFoo, ev_saveFoo, {})
}
function ev_editFoo(text, summary, doc, data)
{
summary = "[[MediaWiki:Gadget-Evaluation.js|Évaluation]]: "+ev_getSummary_multiprojects();
text = ev_suppr_anc_eval(text);
text = ev_process_multiprojects(text);
text = ev_remise_en_tete(text);
return { wpTextbox1: text, wpSummary: summary, data: data };
}
function ev_saveFoo()
{
document.getElementById("EvalButton").disabled = false
}
function ev_getSummary_multiprojects()
{
summary = " Multiprojet ("+evaluation_multiprojets.avancement_global+")";
for(var i=0; i<evaluation_multiprojets.project.length; i++)
{
if(evaluation_multiprojets.state[i])
{
summary += " "+evaluation_multiprojets.project[i] + "|" + evaluation_multiprojets.importance[i];
if(evaluation_multiprojets.avancement[i] != null)
summary += "|"+evaluation_multiprojets.avancement[i];
}
}
return summary+")";
}
function ev_suppr_anc_eval(text)
{
var regtxt =new RegExp("\\{\\{([W|w]ikiprojet [^\\}|]|[lL]es plus consultés)[^\\}]*\\}\\}", "g");
// return eval("text.replace(" + regtxt + ",'')")
var regtext_b = new RegExp("\\{\\{[éÉ]valuations[ _]WP1[^\\}\\{]*\\}\\}", "g")
return text.replace(regtxt, '').replace(regtext_b, '');
}
function ev_process_multiprojects(text)
{
var regtxt = /\{\{([wW]ikiprojet|[éÉ]valuation multiprojet)\s*\|[^\}]*\}\}/
var newtxt = "{{Wikiprojet";
var regtodo=/\{\{([tT]odo\|?\*?|[àÀ] faire\|?\*?)\}\}/
var ok = false
for(var i=0; i<evaluation_multiprojets.project.length; i++)
{
if(evaluation_multiprojets.state[i])
{
newtxt += "\n|"+evaluation_multiprojets.project[i]+"|"+evaluation_multiprojets.importance[i]
if(evaluation_multiprojets.avancement[i] != null)
newtxt += "|avancement "+evaluation_multiprojets.project[i]+"="+evaluation_multiprojets.avancement[i]
ok = true;
}
}
ok = ok || (evaluation_multiprojets.avancement_global != "?");
newtxt += "\n|avancement="+evaluation_multiprojets.avancement_global;
for(var i in evaluation_multiprojets.autres)
{
newtxt += "\n|"+i+"="+evaluation_multiprojets.autres[i];
}
newtxt += "\n}}";
if(ok)
{
if(regtxt.test(text))
text = text.replace(regtxt, newtxt)
else
text = newtxt + "\n" + text
text = text.replace(regtodo, "")
}
return text;
}
function ev_remise_en_tete(text)
{
var reg = /(\{\{[tT]raduit de\s*\|[^}]*\}\})/
var m = reg.exec(text);
if(m)
{
var left = RegExp.leftContext
var right = RegExp.rightContext
text = m[1]+"\n"+left.replace(/\s+$/, '')+"\n"+right.replace(/^\s+/, '');
}
return text;
}
/////////////////////////////////////////////////////////from tichou
// URL encode
if (typeof(wpURLEncode) == "undefined") {
wpURLEncode = function(string) {
if (!string) return "";
return string.replace(/ /g, "_").replace(/[\x00-\x2C\x3B-\x40\x5B-\x5E\x60\x7B-\uFFFF]/g,
function (match) {
var c = match.charCodeAt(0);
var s = new Array();
if (c < 0x80) s.push(c);
else if (c < 0x0800) s.push(c >> 6 | 0xC0, c & 0x3F | 0x80);
else if (c < 0x010000) s.push(c >> 12 | 0xE0, c >> 6 & 0x3F | 0x80, c & 0x3F | 0x80);
else if (c < 0x110000) s.push(c >> 18 | 0xF0, c >> 12 & 0x3F | 0x80, c >> 6 & 0x3F | 0x80, c & 0x3F | 0x80);
for (var i = 0, len = s.length; i < len; i++)
s[i] = (s[i] < 16 ? "%0" : "%") + s[i].toString(16).toUpperCase();
return s.join("");
});
}
}
// getElementById
if (typeof(getElementById) == "undefined") {
getElementById = function(id) {
var element = null;
if (this.id == id) {
element = this;
element.getElementsByClassName = document.getElementsByClassName;
}
for (var child = this.firstChild; !element && child; child = child.nextSibling)
if (child.nodeType == 1) {
child.getElementById = getElementById;
element = child.getElementById(id);
}
return element;
}
}
// HTTP
if (typeof(httpRequest) == "undefined") {
httpRequest = function(url, options, data) {
// options.async
// options.method
// options.headers
// options.content
// options.onSuccess(request,data)
// options.onFailure(request,data)
var request;
try {
request = new XMLHttpRequest();
} catch(e) {
try {
request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
request = false;
}
}
}
if (request) {
request.onreadystatechange = function() {
if (request.readyState == 4)
httpComplete(request, options, data);
};
request.open(options.method ? options.method : "GET", url, options.async == false ? false : true);
if (options.headers) {
for (var field in options.headers)
request.setRequestHeader(field, options.headers[field]);
}
request.send(options.content ? options.content : null);
}
return request;
}
}
if (typeof(httpComplete) == "undefined") {
httpComplete = function(request, options, data) {
if (request.status >= 200 && request.status < 300) {
if (options.onSuccess) {
var contentType = request.getResponseHeader("Content-Type");
var regex = new RegExp(/^([^\/]+\/[^;]+).*/);
contentType = contentType.replace(regex, "$1");
if (contentType == "text/html") {
var doc = document.createElement("div");
doc.innerHTML = request.responseText;
doc.getElementsByClassName = document.getElementsByClassName;
doc.getElementById = getElementById;
options.onSuccess(doc, data);
} else if (contentType == "text/xml") {
var xml = null;
if (navigator.appName == "Microsoft Internet Explorer") {
xml = new ActiveXObject("Microsoft.XMLDOM");
xml.async = false;
xml.loadXML(request.responseText);
} else if (window.DOMParser) {
xml = new DOMParser();
xml = xml.parseFromString(request.responseText, 'text/xml');
}
options.onSuccess(xml, data);
} else {
options.onSuccess(request, data);
}
}
} else if (options.onFailure) {
options.onFailure(request, data);
} else {
alert(request.statusText);
}
}
}
// Edit WP page
if (typeof(wpEditPage) == "undefined") {
wpEditPage = function(title, params, editFunction, saveFunction, data) {
var url = mw.config.get('wgServer') + mw.config.get('wgScript') + '?title=' + wpURLEncode(title)
+ '&action=edit';
for (var name in params)
url += '&' + name + '=' + wpURLEncode(params[name]);
var options = { onSuccess: wpSavePage };
data.title = title;
data.editFunction = editFunction;
data.saveFunction = saveFunction;
httpRequest(url, options, data);
}
}
// Save WP page
if (typeof(wpSavePage) == "undefined") {
wpSavePage = function(doc, data) {
var inputs = doc.getElementById('editform').getElementsByTagName('input');
var editform = new Array();
for (var i = 0, len = inputs.length; i < len; i++)
{
var value = inputs[i].value
if(inputs[i].type != "checkbox" || inputs[i].checked)
editform[inputs[i].name] = value;
}
var wpTextbox1 = doc.getElementById('wpTextbox1').value;
var wpSummary = editform['wpSummary'];
var regex = new RegExp(/var wgArticleId = "(\d+)";(?:\n.*)*var wgCurRevisionId = "(\d+)";/m);
var match = regex.exec(doc.textContent);
if (match) {
data.pageId = match[1];
data.curRevId = match[2];
}
var edit = data.editFunction(wpTextbox1, wpSummary, doc, data);
if (typeof(edit.error) == "undefined") {
editform['wpTextbox1'] = edit.wpTextbox1;
editform['wpSummary'] = edit.wpSummary;
var params = [ 'wpTextbox1', 'wpSummary', 'wpSection',
'wpStarttime', 'wpEdittime', 'wpEditToken', 'wpSave' ];
if(editform['wpWatchthis']) params.push('wpWatchthis')
var content = params.map(function(name) { return name + '=' + encodeURIComponent(editform[name]); }).join("&");
var url = mw.config.get('wgServer') + mw.config.get('wgScript') + '?title=' + wpURLEncode(data.title)
+ '&action=submit';
var headers = new Object();
headers['Content-Type'] = 'application/x-www-form-urlencoded';
var options = { method: 'POST', headers: headers, content: content, onSuccess: data.saveFunction };
data = edit.data;
httpRequest(url, options, data);
} else {
edit.error(edit.data);
}
}
}
var wpfunctions = 1;
//</nowiki></pre></source>
function youHaveANewReclaim() {
div = document.body.getElementsByClassName("usermessage")[0]
if( !div) return
div.firstChild.nodeValue = "Nouvelle plainte déposée au " //texte1
a = div.getElementsByTagName("a")
a[0].firstChild.nodeValue = "bureau des réclamations" //lien1
a[0].nextSibling.nodeValue = " (" //texte2
a[1].firstChild.nodeValue = "avis de passage" //lien2
}
addOnloadHook(youHaveANewReclaim)
importScript('Utilisateur:Argos42/PaStec.js');
$(addAutoMacronButton);
$(addJapanButton);
$(customSpecialChars);
obtenir('BistroDuJour');