« MediaWiki:Common.js » : différence entre les versions
Contenu supprimé Contenu ajouté
mAucun résumé des modifications |
suppression des liens présents en doublon |
||
(5 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 390 : | Ligne 390 : | ||
} |
} |
||
// |
//interprojets |
||
var interprojetsAAjouter = {}; |
|||
⚫ | |||
⚫ | |||
// extraction |
|||
var interprojectNode = $( "#interProject" ); |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
//on cherche l'id du site |
|||
⚫ | |||
⚫ | |||
if( idParts.length !== 2) |
|||
return; |
|||
var id = idParts[1]; |
|||
⚫ | |||
interprojetsAAjouter['wb-otherproject-' + id + '-custom'] = { |
|||
'label': link.text(), |
|||
'href': link.attr('href'), |
|||
⚫ | |||
'class': 'wb-otherproject-link wb-otherproject-' + id |
|||
⚫ | |||
⚫ | |||
⚫ | |||
//ajout |
|||
if( !$.isEmptyObject( interprojetsAAjouter ) ) { |
|||
var autresProjectsNode = $( '#p-wikibase-otherprojects' ); |
|||
if( autresProjectsNode.size() !== 0 ) { |
|||
//on supprime les doublons |
|||
$.each( interprojetsAAjouter, function( id, parameters ) { |
|||
autresProjectsNode.find( '.wb-otherproject-' + parameters.group ).remove(); |
|||
⚫ | |||
⚫ | |||
section: 'wikibase-otherprojects', |
|||
links: interprojetsAAjouter |
|||
⚫ | |||
} else { |
|||
mw.panel( { |
|||
sections: { |
|||
'wikibase-otherprojects': { |
|||
⚫ | |||
links: interprojetsAAjouter |
|||
} |
|||
} |
|||
} ); |
|||
} |
} |
||
⚫ | |||
⚫ | |||
var p = info.title.indexOf("|"); |
|||
data.sections.interProject.links['complements-' + i] = { |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
} |
} |
||
} |
} |
Version du 8 avril 2014 à 07:16
/************************************************************/
/* Fonctions générales (pallient les limites de javascript) */
/************************************************************/
/**
* Traitement des classes
* Javascript ne fournit actuellement que .className qui est extrêmement limité
* surveiller l'implémentation de .classList http://www.w3.org/TR/2008/WD-html5-diff-20080122/#htmlelement-extensions
*/
function isClass(element, classe) {
return hasClass(element, classe);
}
function whichClass(element, classes) {
var s=" "+element.className+" ";
for(var i=0;i<classes.length;i++)
if (s.indexOf(" "+classes[i]+" ")>=0) return i;
return -1;
}
function hasClass(node, className) {
var haystack = node.className;
if(!haystack) return false;
if (className === haystack) {
return true;
}
return (" " + haystack + " ").indexOf(" " + className + " ") > -1;
}
function addClass(node, className) {
if (hasClass(node, className)) {
return false;
}
var cache = node.className;
if (cache) {
node.className = cache + ' ' + className;
} else {
node.className = className;
}
return true;
}
function removeClass(node, className) {
if (!hasClass(node, className)) {
return false;
}
node.className = eregReplace('(^|\\s+)'+ className +'($|\\s+)', ' ', node.className);
return true;
}
function eregReplace(search, replace, subject) {
return subject.replace(new RegExp(search,'g'), replace);
}
/* Crée l'objet $j comme alias à jQuery et ws comme super-objet*/
if(typeof $j == 'undefined') {
$j = jQuery;
}
if(typeof ws == 'undefined') {
ws = {};
}
//Script spécifique pour Internet Explorer
if($.client.profile().name == 'msie') {
mw.loader.load('//fr.wikisource.org/w/index.php?title=MediaWiki:Internet-explorer.js&action=raw&ctype=text/javascript');
}
//import du widget "citer le livre"
if( $('div#citeBox').length == 0) {
mw.loader.load('//fr.wikisource.org/w/index.php?title=MediaWiki:Wikisource.citeBox.js&action=raw&ctype=text/javascript');
}
/*********************
Indicateurs de qualité
Auteur: ThomasV
*********************/
var q0 = "//upload.wikimedia.org/wikipedia/commons/8/8f/00%25.png";
var q25 = "//upload.wikimedia.org/wikipedia/commons/5/5b/25%25.png";
var q50 = "//upload.wikimedia.org/wikipedia/commons/3/3a/50%25.png";
var q75 = "//upload.wikimedia.org/wikipedia/commons/c/cd/75%25.png";
var q100 = "//upload.wikimedia.org/wikipedia/commons/6/64/100%25.png";
var qvalid = "//upload.wikimedia.org/wikisource/fr/2/2b/Valid%C3%A9.png";
function textQuality() {
if ($.inArray(mw.config.get('skin'), [ 'monobook', 'vector' ]) == -1)
return;
if ($.inArray(mw.config.get('wgAction'), [ 'view', 'submit', 'purge' ]) == -1)
return;
if (mw.config.get('wgNamespaceNumber'))
return;
var a = document.getElementById("ca-nstab-main");
if (!a)
return;
var pr_q = document.getElementById("pr_index")
if( pr_q ) {
/* Modèle:Index présent. */
href = pr_q.firstChild;
if (!href)
return;
pr_q.removeChild(href);
href.firstChild.innerHTML = "Source";
href.setAttribute("title", "Source de ce texte (fac-simile)");
var new_li = document.createElement("li");
new_li.appendChild(href);
a.parentNode.insertBefore(new_li, a.nextSibling);
} else {
/* Porter depuis monobook.js, est-ce encore utile et qu'est-ce ? */
if( mw.config.get('skin') == 'monobook' && !document.getElementById("pr_page")) {
var c = document.getElementById("contentSub");
/* FIXME: très très mauvais */
c.innerHTML = c.innerHTML + "<span></span>";
}
var q = document.getElementById("textquality")
if (q) {
var new_img = document.createElement("img");
var t = q.className.split(' ')[0];
switch (t) {
case '_200':
new_img.setAttribute("src", qvalid);
break;
case '_25':
new_img.setAttribute("src", q25);
break;
case '_50':
new_img.setAttribute("src", q50);
break;
case '_75':
new_img.setAttribute("src", q75);
break;
case '_100':
new_img.setAttribute("src", q100);
break;
}
new_img.setAttribute("title", "état d'avancement: "+t.substring(1,t.length)+'%');
if (mw.config.get('skin') == 'vector')
a.firstChild.firstChild.appendChild(new_img);
else /* monobook */
a.firstChild.appendChild(new_img);
}
}
}
$(document).ready(function() { textQuality(); } );
/* Bouton OCR -- ThomasV : OCR ne fonctionannt plus sur le Toolserver
function add_msg(){
if((!wgCurRevisionId) && self.proofreadPageIsEdit && self.proofreadPageViewURL) {
var msg = document.getElementById("msgNewarticletext");
if(msg) msg.innerHTML = "<div style=\"border:1px solid #CCC; padding:0.5em;\">Vous avez suivi un lien vers une page en mode fac-similé, pour laquelle le texte n'est pas encore disponible. Vous pouvez compléter cette page en entrant le texte dans la boîte ci-dessous. Vous pouvez demander une reconnaissance automatique de caractères, en utilisant le service d'OCR de Wikisource.</div>";
}
}
addOnloadHook(add_msg); */
/*
* Typographie : même lorsque l'on travaille en mode création de page
* il n'est pas sur de changer aveuglément tout le texte, d'où le
* le split du texte en fragment où les regexps sont appliqués
*/
function common_typographie_fragment(text, typo_def) {
var lng = typo_def.length;
if (lng % 2 != 0)
return text; /* FIXME, il faut lever une exception ici ? */
for (var i = 0; i < lng; i += 2) {
search = new RegExp(typo_def[i + 0], "g");
text = text.replace(search, typo_def[i + 1]);
}
return text;
}
function common_typographie(text, typo_def) {
var new_text = '';
var last_match = 0;
// Split the text in part which are safe to transform, e.g we don't want
// to apply common_typographie_fragment on a <math>.*</math> or a etc.
var splitter = new RegExp("<math>.*</math>|<[a-zA-z0-9 =\"']>|[</[a-zA-z0-9 =\"']+>|style=\".*\"| |—|<!--.*-->|\n:[:]*|\n;[;]*|[[][[].*]]", "gm");
while ((result = splitter.exec(text)) != null) {
new_text += common_typographie_fragment(text.slice(last_match, splitter.lastIndex - result[0].length), typo_def);
new_text += result;
last_match = splitter.lastIndex;
}
new_text += common_typographie_fragment(text.slice(last_match), typo_def)
return new_text;
}
function common_typographie_textbox(pagename_filter, typo_def) {
if (mw.config.get('wgNamespaceNumber') != 104)
return;
if (self.proofreadpage_quality!=1 ) {
return;
}
var wpTextbox1 = document.getElementById("wpTextbox1");
if (!wpTextbox1)
return;
var typo_def = [
"([^'])'([^'])", "$1’$2",
"\n\n- ", "\n\n— "
]
wpTextbox1.value = common_typographie(wpTextbox1.value, typo_def);
}
addOnloadHook(common_typographie_textbox);
/* traduction des messages javascript*/
self.ws_messages = {
'optlist':'Options d’affichage',
'hide_page_numbers':'Liens vers les pages',
'show_page_numbers':'Liens vers les pages',
'layout':'Maquette',
'author':'Auteur',
'translator':'Traducteur',
'editor':'Editeur_scientifique',
'publisher':'Editeur',
'place':'Lieu',
'volume':'Volume',
'school':'School', /*ne pas traduire*/
'book':'Livre',
'collection':'Recueil',
'journal':'Journal ou revue',
'phdthesis':'Thèse, rapport',
'dictionary':'Dictionnaire, encyclopédie, ouvrage de référence',
'progress':'Avancement',
'progress_T':'Terminé',
'progress_V':'À valider',
'progress_C':'À corriger',
'progress_MS':'Texte prêt à être découpé (match & split)',
'progress_OCR':'Ajouter une couche texte OCR',
'progress_X':'Source incomplète (extrait) ou compilation de sources différentes',
'progress_L':'Fichier défectueux (lacunes, pages dans le désordre, etc)',
'progress_D':'Doublon, un autre fichier existe sur lequel il est préférable de travailler',
'matching':'appariement en cours',
'splitting':'découpage en cours',
'corr_list':"Liste des corrections apportées à cette page",
'corr_link':"Coquilles",
'corr_one':"Une coquille </a> a été corrigée.",
'corr_many':" coquilles</a> ont été corrigées.",
'corr_close':'Fermer.',
'iwtrans':'Son texte vient de',
'iwtrans2':'Son texte vient d’autres sous-domaines de Wikisource.'
}
self.ws_messages['progress_select'] =
"<option value='' selected=true></option>" +
"<option value='T'>" + self.ws_messages['progress_T'] + "</option>" +
"<option value='V'>" + self.ws_messages['progress_V'] + "</option>" +
"<option value='C'>" + self.ws_messages['progress_C'] + "</option>" +
"<option value='MS'>" + self.ws_messages['progress_MS'] + "</option>" +
"<option value='OCR'>"+ self.ws_messages['progress_OCR'] + "</option>" +
"<option value='X'>" + self.ws_messages['progress_X'] + "</option>" +
"<option value='L'>" + self.ws_messages['progress_L'] + "</option>" +
"<option value='D'>" + self.ws_messages['progress_D'] + "</option>";
/* attributs de style dynamiques */
self.ws_layouts = {
'Maquette 1':{'text-wrap':"position:relative;margin-left:3em;margin-right:3em;",
'#text-container':"width:36em;margin:0px auto;" ,
'#text':"text-align:justify;",
'#box-right':"position:absolute; right:-20em;top:0em;",
'#box-toc':"position:absolute; right:-23em;top:0em; width:22em;",
'.sidenote-right':"position:absolute; left:37em;width:15em;text-indent:0em;text-align:left;",
'.sidenote-left':"position:absolute; right:37em;width:15em;text-indent:0em;text-align:right;",
'.editsection':"display:none",
'.headerlabel':"display:none",
'.headertemplate-author':"font-size:100%",
'.headertemplate-title':"font-size:120%;",
'.headertemplate-reference':"font-size:90%",
'#headertemplate':"" },
'Maquette 2':{'text-wrap':"margin-left:3em",
'#text-container':"" ,
'#text':"text-align:justify;width:auto;",
'#box-right':"float:right;",
'#box-toc':"margin:auto;width:100%;",
'.sidenote-right':"float:right;margin:0.5em;padding:3px;border:solid 1px gray;max-width:9em;text-indent:0em;text-align:left;",
'.sidenote-left':"float:left;margin:0.5em;padding:3px;border:solid 1px gray;max-width:9em;text-indent:0em;text-align:left;",
'.editsection':"display:none",
'.headerlabel':"display:none",
'.headertemplate-author':"font-size:100%",
'.headertemplate-title':"font-size:120%;",
'.headertemplate-reference':"font-size:90%",
'#headertemplate':"" },
'Maquette 3':{'text-wrap':"margin-left:3em",
'#text-container':"position:relative; min-width:60em; float:left; width:100%; margin-right:-23em;" ,
'#text':"text-align:justify;margin-right:23em; text-indent:0em; padding-left:0px; padding-right:0px;width:auto;position:relative;",
'#box-right':"float:right;",
'#box-toc':"margin:auto;width:100%;",
'.sidenote-right':"position:absolute; right:-16em; width:15em; background-color:#eeeeee;text-indent:0em;text-align:left;line-height:normal;",
'.sidenote-left': "position:absolute; right:-16em; width:15em; background-color:#eeeeee;text-indent:0em;text-align:left;line-height:normal;",
'.editsection':"display:none",
'.headerlabel':"display:inline",
'.headertemplate-author':"font-size:100%;",
'.headertemplate-title':"font-size:100%;",
'.headertemplate-reference':"font-size:100%;",
'#headertemplate':"position:absolute; top:0em; right:-23em; width:21em;float:right; text-align:left;" }
}
/* test */
self.proofreadpage_add_container=true;
var old_wgserver = '//wikisource.org';
mw.loader.load(old_wgserver + '/w/index.php?title=MediaWiki:Base.js&action=raw&ctype=text/javascript');
mw.loader.load(old_wgserver + '/w/index.php?title=MediaWiki:OCR.js&action=raw&ctype=text/javascript');
mw.loader.load(old_wgserver + '/w/index.php?title=MediaWiki:PageNumbers.js&action=raw&ctype=text/javascript');
mw.loader.load(old_wgserver + '/w/index.php?title=MediaWiki:Modernisation.js&action=raw&ctype=text/javascript');
/*mw.loader.load('//pt.wikisource.org/w/index.php?title=Usuário:Heldergeovane/Scripts/Modernisation.js&action=raw&ctype=text/javascript');*/
mw.loader.load(old_wgserver + '/w/index.php?title=MediaWiki:Corrections.js&action=raw&ctype=text/javascript');
mw.loader.load(old_wgserver + '/w/index.php?title=MediaWiki:DisplayFooter.js&action=raw&ctype=text/javascript');
mw.loader.load(old_wgserver + '/w/index.php?title=MediaWiki:InterWikiTransclusion.js&action=raw&ctype=text/javascript');
mw.loader.load(old_wgserver + '/w/index.php?title=MediaWiki:IndexForm.js&action=raw&ctype=text/javascript');
mw.loader.load(old_wgserver + '/w/index.php?title=MediaWiki:Dictionary.js&action=raw&ctype=text/javascript');
mw.loader.load(old_wgserver + '/w/index.php?title=MediaWiki:RegexpButton.js&action=raw&ctype=text/javascript');
mw.loader.load(old_wgserver + '/w/index.php?title=MediaWiki:DoubleWiki.js&action=raw&ctype=text/javascript');
mw.loader.load(mw.config.get('wgServer') + '/w/index.php?title=MediaWiki:MediaWiki.panel.js&action=raw&ctype=text/javascript&smaxage=21600&maxage=86400' );
/* Réécriture des titres
*
* Fonction utilisée par Modèle:TitreModifié et Modèle:Statut
*
*/
function rewritePageH1() {
var realTitle = document.getElementById('RealTitle');
var h1 = document.getElementsByTagName('h1')[0];
if (realTitle && h1) {
var titleText = realTitle.innerHTML;
if (titleText == '') h1.style.display = 'none';
else h1.innerHTML = titleText;
realTitleBanner.style.display = 'none';
}
}
addOnloadHook(rewritePageH1);
/*
Interwikiextra
Auteur:ThomasV et Tpt
*/
function menuExtra() {
$j(".interwiki-info").each(function(i, info) {
var langLink = $j("#p-lang .interwiki-" + info.id + " a");
if(info.title == "(vo)") {
langLink.after(' (<abbr title="Version originale">vo</abbr>)');
} else {
langLink.after(" " + info.title);
}
});
//Autre versions
if($j(".AutreVersion").size() != 0) {
var data = {
sections: {
version: {
expanded: true,
label: 'Autres versions',
links: {}
}
}
};
$j(".AutreVersion").each(function(i, info) {
var p = info.title.indexOf("|");
data.sections.version.links['interwiki-' + i] = {
label: info.title.substr(p+1,this.title.length-1),
href: '/wiki/' + encodeURIComponent( info.title.substr(0,p) )
};
});
mw.panel(data);
}
//interprojets
var interprojetsAAjouter = {};
// extraction
var interprojectNode = $( "#interProject" );
if( interprojectNode.size() !== 0 ) {
interprojectNode.find( 'span' ).each( function( i, info ) {
//on cherche l'id du site
var idParts = $( this ).attr( 'id' ).split( '-' );
if( idParts.length !== 2)
return;
var id = idParts[1];
var link = $( this ).find( 'a' );
interprojetsAAjouter['wb-otherproject-' + id + '-custom'] = {
'label': link.text(),
'href': link.attr('href'),
'group': id,
'class': 'wb-otherproject-link wb-otherproject-' + id
};
} );
}
//ajout
if( !$.isEmptyObject( interprojetsAAjouter ) ) {
var autresProjectsNode = $( '#p-wikibase-otherprojects' );
if( autresProjectsNode.size() !== 0 ) {
//on supprime les doublons
$.each( interprojetsAAjouter, function( id, parameters ) {
autresProjectsNode.find( '.wb-otherproject-' + parameters.group ).remove();
} );
mw.panel( {
section: 'wikibase-otherprojects',
links: interprojetsAAjouter
} );
} else {
mw.panel( {
sections: {
'wikibase-otherprojects': {
label: 'Autres projets',
links: interprojetsAAjouter
}
}
} );
}
}
}
addOnloadHook(menuExtra);
/*
Compatibilité du menu Option d’affichage avec Vector
Auteur : Tpt
*/
function VectorCompatibility() {
if(document.getElementById("p-displayOptions")) {
document.getElementById("p-displayOptions").childNodes[1].style.display = "block";
}
}
addOnloadHook(VectorCompatibility);
/*******************************************************************
* affichage des liens vers les pages d'auteur dans les catégories *
*******************************************************************/
function authors_cat(){
if(mw.config.get('wgNamespaceNumber')==14) {
var list = document.getElementsByTagName('li')
for(var i in list){
var item = list[i];
if(item.firstChild && item.firstChild.innerHTML){
var s = item.firstChild.innerHTML;
if(s.substr(0,7)=="Auteur:") item.firstChild.innerHTML = s.substr(7);
}
};
}
}
addOnloadHook(authors_cat);
function epubExportLink() {
if ($.inArray("Bon pour export", mw.config.get('wgCategories')) >= 0 ) {
mw.util.addPortletLink('p-coll-print_export', 'http://wsexport.wmflabs.org/tool/book.php?lang=fr&format=epub&page=' + mw.config.get('wgPageName'), 'Télécharger en ePub', 'n-epubExport', 'Télécharger le livre au format ePub');
}
}
addOnloadHook(epubExportLink);
/**
* Boîtes déroulantes
*
* Pour [[Modèle:Méta palette de navigation]]
*/
var autoCollapse = 2;
var collapseCaption = '[Enrouler]';
var expandCaption = '[Dérouler]';
function hasClass(node, className) {
if (node.className == className) {
return true;
}
var reg = new RegExp('(^| )'+ className +'($| )')
if (reg.test(node.className)) {
return true;
}
return false;
}
function collapseTable( tableIndex ) {
var Button = document.getElementById( "collapseButton" + tableIndex );
var Table = document.getElementById( "collapsibleTable" + tableIndex );
if ( !Table || !Button ) return false;
var Rows = Table.getElementsByTagName( "tr" );
if ( Button.firstChild.data == collapseCaption ) {
for ( var i = 1; i < Rows.length; i++ ) {
Rows[i].style.display = "none";
}
Button.firstChild.data = expandCaption;
} else {
for ( var i = 1; i < Rows.length; i++ ) {
Rows[i].style.display = Rows[0].style.display;
}
Button.firstChild.data = collapseCaption;
}
}
function createCollapseButtons() {
var tableIndex = 0;
var NavigationBoxes = new Object();
var Tables = document.getElementsByTagName( "table" );
for ( var i = 0; i < Tables.length; i++ ) {
if ( hasClass( Tables[i], "collapsible" ) ) {
NavigationBoxes[ tableIndex ] = Tables[i];
Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex );
var Button = document.createElement( "span" );
var ButtonLink = document.createElement( "a" );
var ButtonText = document.createTextNode( collapseCaption );
Button.style.styleFloat = "right";
Button.style.cssFloat = "right";
Button.style.fontWeight = "normal";
Button.style.textAlign = "right";
Button.style.width = "6em";
ButtonLink.setAttribute( "id", "collapseButton" + tableIndex );
ButtonLink.setAttribute( "href", "javascript:collapseTable(" + tableIndex + ");" );
ButtonLink.appendChild( ButtonText );
Button.appendChild( ButtonLink );
var Header = Tables[i].getElementsByTagName( "tr" )[0].getElementsByTagName( "th" )[0];
/* only add button and increment count if there is a header row to work with */
if (Header) {
Header.insertBefore( Button, Header.childNodes[0] );
tableIndex++;
}
}
}
for (var i = 0; i < tableIndex; i++) {
if ( hasClass( NavigationBoxes[i], "collapsed" ) || ( tableIndex >= autoCollapse && hasClass( NavigationBoxes[i], "autocollapse" ) ) ) collapseTable( i );
}
}
addOnloadHook(createCollapseButtons);
/**
* Pour [[Modèle:Boîte déroulante]]
*/
var NavigationBarShowDefault = 0;
function toggleNavigationBar(indexNavigationBar) {
var NavToggle = document.getElementById("NavToggle" + indexNavigationBar);
var NavFrame = document.getElementById("NavFrame" + indexNavigationBar);
if (!NavFrame || !NavToggle) return;
// surcharge des libellés dérouler/enrouler grâce a l'attribut title
// exemple : title="[déroulade]/[enroulade]"
var caption = [expandCaption, collapseCaption];
if (NavFrame.title && NavFrame.title.length > 0) {
caption = NavFrame.title.split("/");
if (caption.length < 2) caption.push(collapseCaption);
}
// if shown now
if (NavToggle.firstChild.data == caption[1]) {
for ( var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling ) {
if (hasClass(NavChild, 'NavPic')) NavChild.style.display = 'none';
if (hasClass(NavChild, 'NavContent')) NavChild.style.display = 'none';
if (hasClass(NavChild, 'NavToggle')) NavChild.firstChild.data = caption[0];
}
// if hidden now
} else if (NavToggle.firstChild.data == caption[0]) {
for ( var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling ) {
if (hasClass(NavChild, 'NavPic')) NavChild.style.display = 'block';
if (hasClass(NavChild, 'NavContent')) NavChild.style.display = 'block';
if (hasClass(NavChild, 'NavToggle')) NavChild.firstChild.data = caption[1];
}
}
}
// adds show/hide-button to navigation bars
function createNavigationBarToggleButton() {
var indexNavigationBar = 0;
var NavFrame;
// iterate over all < div >-elements
for( var i=0; NavFrame = document.getElementsByTagName("div")[i]; i++ ) {
// if found a navigation bar
if (hasClass(NavFrame, "NavFrame")) {
indexNavigationBar++;
var NavToggle = document.createElement("a");
NavToggle.className = 'NavToggle';
NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar);
NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');');
// surcharge des libellés dérouler/enrouler grâce a l'attribut title
var caption = collapseCaption;
if (NavFrame.title && NavFrame.title.indexOf("/") > 0) {
caption = NavFrame.title.split("/")[1];
}
var NavToggleText = document.createTextNode(caption);
NavToggle.appendChild(NavToggleText);
// add NavToggle-Button as first div-element
// in <div class="NavFrame">
NavFrame.insertBefore( NavToggle, NavFrame.firstChild );
NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
}
}
// if more Navigation Bars found than Default: hide all
if (NavigationBarShowDefault < indexNavigationBar) {
for( var i=1; i<=indexNavigationBar; i++ ) {
toggleNavigationBar(i);
}
}
}
addOnloadHook(createNavigationBarToggleButton);
/**
* Menu de navigation, pour Modèle:Menu de navigation - user:Dodoïste
*/
$j(document).ready( function () {
// On cache les sous-menus
// sauf celui qui porte la classe "open_at_load" :
$j(".navigation ul.subMenu:not('.open_at_load')").hide();
// On sélectionne tous les items de liste portant la classe "toggleSubMenu"
// et on remplace l'élément span qu'ils contiennent par un lien :
$j(".navigation li.toggleSubMenu span").each( function () {
// On stocke le contenu du span :
var TexteSpan = $j(this).text();
$j(this).replaceWith('<a href="" class="subMenuA" title="Afficher le sous-menu">' + TexteSpan + '<\/a>') ;
} ) ;
// On modifie l'évènement "click" sur les liens dans les items de liste
// qui portent la classe "toggleSubMenu" :
$j(".navigation li.toggleSubMenu > a").click( function () {
// Si le sous-menu était déjà ouvert, on le referme :
if ($j(this).next("ul.subMenu:visible").length != 0) {
$j(this).next("ul.subMenu").slideUp("normal", function () { $j(this).parent().removeClass("open") } );
}
// Si le sous-menu est caché, on ferme les autres et on l'affiche :
else {
$j(".navigation ul.subMenu").slideUp("normal", function () { $j(this).parent().removeClass("open") });
$j(this).next("ul.subMenu").slideDown("normal", function () { $j(this).parent().addClass("open") } );
}
// On empêche le navigateur de suivre le lien :
return false;
});
} ) ;
/**********************
*** add menu on edit page /for selecting subsets of special characters
*** by [[user:Pathoschild]]
*** - note: must match MediaWiki:Edittools
**********************/
function addCharSubsetMenu() {
var specialchars = document.getElementById('specialchars');
if (specialchars) {
var menu = "<select style=\"display:inline\" onChange=\"chooseCharSubset(selectedIndex)\">";
menu += "<option>Sélectionner</option>";
menu += "<option>Ligatures et symboles</option>";
menu += "<option>Accents</option>";
menu += "<option>Tildes</option>";
menu += "<option>Cédilles</option>";
menu += "<option>Trémas</option>";
menu += "<option>Circonflexes</option>";
menu += "<option>Longues</option>";
menu += "<option>Autres diacritiques</option>";
menu += "<option>Grec</option>";
menu += "<option>Hébreu</option>";
menu += "<option>Cyrillique</option>";
menu += "<option>IPA</option>";
menu += "</select>";
specialchars.innerHTML = menu + specialchars.innerHTML.replace(/_newline_/gm, "\n");
/* 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);
// Cache le lien "Ajouter un sujet" dans les pages contenant le marqueur idoine,
// un <span id="suppression_lien_ajouter_un_sujet"></span> suffit.
addOnloadHook(function() {
if ($('#suppression_lien_ajouter_un_sujet').length) {
$('#ca-addsection').css('display', 'none');
// Pas de raison de spliter sur ce type de page.
$('#ca-split').css('display', 'none');
}
});
/* Fonction dans l'extension, fichier proofread.js, adapté pour que lorsque
* un utilisateur clique q3 alors que q3 est déjà le niveau, le nom de l'utilisateur
* qui a marqué la page q3 ne soit pas changé, idem pour q4.
*/
/* -2 n'est pas un niveau de qualité valide. */
document.initial_proofreadpage_quality = -2;
document.initial_proofreadpage_username = "";
/* Quality buttons */
self.pr_add_quality = function( form, value ) {
if (document.initial_proofreadpage_quality == -2) {
document.initial_proofreadpage_quality = self.proofreadpage_quality;
document.initial_proofreadpage_username = mw.config.get('wgUserName');
}
if (document.initial_proofreadpage_quality < 3 || value != document.initial_proofreadpage_quality)
self.proofreadpage_username = proofreadPageUserName;
else
self.proofreadpage_username = document.initial_proofreadpage_username;
self.proofreadpage_quality = value;
var text = '';
switch( value ) {
case 0:
text = mediaWiki.msg( 'proofreadpage_quality0_category' );
break;
case 1:
text = mediaWiki.msg( 'proofreadpage_quality1_category' );
break;
case 2:
text = mediaWiki.msg( 'proofreadpage_quality2_category' );
break;
case 3:
text = mediaWiki.msg( 'proofreadpage_quality3_category' );
break;
case 4:
text = mediaWiki.msg( 'proofreadpage_quality4_category' );
break;
}
form.elements['wpSummary'].value = '/* ' + text + ' */ ';
form.elements['wpProofreader'].value = self.proofreadpage_username;
};
/* Modèle:Titre sous-page */
$(document).ready(function () {
if ($('#titre-sous-page-seul').size()) {
var $titre = $('#firstHeading');
$titre.text($titre.text().split('/').slice(-1)[0]);
}
});
function fixup_bug_26028() {
/* https://bugzilla.wikimedia.org/show_bug.cgi?id=26028 commentaires 26 et 27 */
$(document).ready(function () {
$textarea = $('textarea[name="wpFooterTextbox"]');
if ($textarea.size()) {
$textarea.text($textarea.text().replace(/^(<references\/>)$/, '\n$1'));
if ($textarea.text().replace(/^[ \n]*/g, '') == '')
$textarea.text('\n<references\/>');
}
});
}
if (mw.config.get("wgNamespaceNumber") == 104 && $.inArray(mw.config.get('wgAction'), ['edit', 'submit']) !== -1) {
mw.loader.using('ext.proofreadpage.page', function () {
// mimic code in the extension, there is a conditionnal deps on ext.wikiEditor.toolbar.
if (mw.user.options.get('usebetatoolbar') && jQuery.inArray('ext.wikiEditor.toolbar', mw.loader.getModuleNames()) > -1) {
mw.loader.using('ext.wikiEditor.toolbar', function() {
fixup_bug_26028();
});
} else {
fixup_bug_26028();
}
});
}
/* DÉBUT DU CODE JAVASCRIPT DE "CADRE À ONGLETS"
Fonctionnement du [[Modèle:Cadre à onglets]]
Modèle implanté par User:Peleguer de http://ca.wikipedia.org
Actualisé par User:Joanjoc de http://ca.wikipedia.org
Traduction et adaptation User:Antaya de http://fr.wikipedia.org
Indépendance de classes CSS et nettoyage par User:Nemoi de http://fr.wikipedia.org
*/
function CadreOngletInitN(){
var Classeurs = $('div.classeur')
for ( var i = 0; i < Classeurs.length; i++ ) {
var Classeur = Classeurs[i];
Classeur.setAttribute( "id", "classeur" + i );
var vOgIni = -1 // pour connaître l’onglet renseigné
var Onglets = $(Classeur).children("div").eq(0).children("div");
var Feuillets = $(Classeur).children("div").eq(1).children("div");
for ( var j = 0; j < Onglets.length; j++) {
var Onglet = Onglets[j];
var Feuillet = Feuillets[j];
Onglet.setAttribute( "id", "classeur" + i + "onglet" + j );
Feuillet.setAttribute( "id", "classeur" + i + "feuillet" + j );
Onglet.onclick = CadreOngletVoirOngletN;
if ( hasClass( Onglet, "ongletBoutonSel") ) vOgIni=j;
}
// inutile sauf dans le cas où l’onglet de départ est *mal* renseigné
if (vOgIni == -1) {
var vOgIni = Math.floor((Onglets.length)*Math.random()) ;
document.getElementById("classeur"+i+"feuillet"+vOgIni).style.display = "block";
document.getElementById("classeur"+i+"feuillet"+vOgIni).style.visibility = "visible";
var vBtElem = document.getElementById("classeur"+i+"onglet"+vOgIni);
removeClass(Onglet, "ongletBoutonNonSel");
addClass(Onglet, "ongletBoutonSel");
vBtElem.style.cursor="default";
vBtElem.style.backgroundColor="inherit";
vBtElem.style.borderTopColor="inherit"; // propriété par propriété sinon Chrome/Chromium se loupe
vBtElem.style.borderRightColor="inherit";
vBtElem.style.borderBottomColor="inherit";
vBtElem.style.borderLeftColor="inherit";
}
}
}
function CadreOngletVoirOngletN(){
var vOngletNom = this.id.substr(0,this.id.indexOf("onglet",1));
var vOngletIndex = this.id.substr(this.id.indexOf("onglet",0)+6,this.id.length);
var rule1=$('#' + vOngletNom + ' .ongletBoutonNonSel')[0].style.backgroundColor.toString();
var rule2=$('#' + vOngletNom + ' .ongletBoutonNonSel')[0].style.borderColor.toString(); //rule2=$('.ongletBoutonNonSel').css("border-color"); ne fonctionne pas sous Firefox
var Onglets = $('#' + vOngletNom).children("div").eq(0).children("div")
for ( var j = 0; j < Onglets.length; j++) {
var Onglet = Onglets[j];
var Feuillet = document.getElementById(vOngletNom + "feuillet" + j);
if (vOngletIndex==j){
Feuillet.style.display = "block";
Feuillet.style.visibility = "visible";
removeClass(Onglet, "ongletBoutonNonSel");
addClass(Onglet, "ongletBoutonSel");
Onglet.style.cursor="default";
Onglet.style.backgroundColor="inherit";
Onglet.style.borderTopColor="inherit"; // propriété par propriété sinon Chrome/Chromium se loupe
Onglet.style.borderRightColor="inherit";
Onglet.style.borderBottomColor="inherit";
Onglet.style.borderLeftColor="inherit";
} else {
Feuillet.style.display = "none";
Feuillet.style.visibility = "hidden";
removeClass(Onglet, "ongletBoutonSel");
addClass(Onglet, "ongletBoutonNonSel");
Onglet.style.cursor="pointer";
Onglet.style.backgroundColor=rule1;
Onglet.style.borderColor=rule2;
}
}
return false;
}
addOnloadHook(CadreOngletInitN);
/**
* Affiche un modèle Information sur la page de téléchargement de fichiers [[Spécial:Téléverser]]
* Voir aussi [[MediaWiki:Onlyifuploading.js]]
*/
if( mw.config.get('wgCanonicalSpecialPageName') == "Upload" ) {
importScript("MediaWiki:Onlyifuploading.js");
}
/*FIN DU CODE JAVASCRIPT DE "CADRE À ONGLETS"*/
if ( $.client.profile().name == 'msie' ) {
importScript( 'MediaWiki:Common.js/IEFixes.js' );
}
// RÉSULTATS DEPUIS WIKIDATA
// [[File:Wdsearch_script_screenshot.png]]
if ( mw.config.get( 'wgCanonicalSpecialPageName' ) === 'Search' || ( mw.config.get( 'wgArticleId' ) === 0 && mw.config.get( 'wgCanonicalSpecialPageName' ) === false ) ) {
importScriptURI("//en.wikipedia.org/w/index.php?title=MediaWiki:Wdsearch.js&action=raw&ctype=text/javascript");
}
//--[[m:User:Nemo_bis|Nemo]] 13 décembre 2013 à 18:52 (UTC) ([[w:en:MediaWiki talk:Wdsearch.js|comments, translations and last instructions]])
//<!-- EdwardsBot 0661 -->