MediaWiki:Common.js : Différence entre versions
De Casio Universal Wiki
(nom d'utilisateur retiré) (Page créée avec « →* * Pour Modèle:Boîte déroulante : var BoiteDeroulante_Enrouler = '[masquer]'; var BoiteDeroulante_Derouler = '[afficher]'; var BoiteDeroulante_max = 0; ... ») |
|||
Ligne 1 : | Ligne 1 : | ||
+ | /* Any JavaScript here will be loaded for all users on every page load. */ | ||
+ | /** | ||
+ | * Boîtes déroulantes | ||
+ | * | ||
+ | * Pour [[Modèle:Méta palette de navigation]] | ||
+ | */ | ||
+ | |||
+ | var Palette_Enrouler = '[masquer]'; | ||
+ | var Palette_Derouler = '[afficher]'; | ||
+ | |||
+ | var Palette_max = 1; | ||
+ | var Palette_index = -1; | ||
+ | |||
+ | function Palette_toggle(indexPalette){ | ||
+ | var Button = document.getElementById( "collapseButton" + indexPalette); | ||
+ | var Table = document.getElementById( "collapsibleTable" + indexPalette); | ||
+ | if (!Table || !Button) return false; | ||
+ | |||
+ | var Rows = Table.rows; | ||
+ | var RowDisplay = "none"; | ||
+ | if (Button.firstChild.data == Palette_Derouler) { | ||
+ | Button.firstChild.data = Palette_Enrouler; | ||
+ | RowDisplay = Rows[0].style.display; | ||
+ | } else { | ||
+ | Button.firstChild.data = Palette_Derouler; | ||
+ | } | ||
+ | for (var i = 1; i < Rows.length; i++) { | ||
+ | Rows[i].style.display = RowDisplay | ||
+ | } | ||
+ | } | ||
+ | |||
+ | function Palette(Element){ | ||
+ | if(!Element) Element = document; | ||
+ | var TableIndex = 0; | ||
+ | var TableIndexes = new Array(); | ||
+ | var Tables = Element.getElementsByTagName( "table" ); | ||
+ | for ( var i = 0; i < Tables.length; i++ ) { | ||
+ | if ( hasClass( Tables[i], "collapsible" ) ) { | ||
+ | var Table = Tables[i]; | ||
+ | var Header = Table.getElementsByTagName( "tr" )[0].getElementsByTagName( "th" )[0]; | ||
+ | /* only add button and increment count if there is a header row to work with */ | ||
+ | if (Header) { | ||
+ | TableIndex++ | ||
+ | Palette_index++; | ||
+ | TableIndexes[Palette_index] = Table; | ||
+ | Table.setAttribute( "id", "collapsibleTable" + Palette_index ); | ||
+ | var Button = document.createElement( "span" ); | ||
+ | var ButtonLink = document.createElement( "a" ); | ||
+ | var ButtonText = document.createTextNode( Palette_Enrouler ); | ||
+ | Button.className = "navboxToggle"; | ||
+ | ButtonLink.setAttribute( "id", "collapseButton" + Palette_index ); | ||
+ | ButtonLink.setAttribute( "href", "javascript:;" ); | ||
+ | addHandler( ButtonLink, "click", new Function( "evt", "Palette_toggle(" + Palette_index + " ); return killEvt( evt );") ); | ||
+ | ButtonLink.appendChild( ButtonText ); | ||
+ | Button.appendChild( document.createTextNode("\u00a0")); //ajout d'un espace insécable pour décoller ce bouton du texte de la celulle | ||
+ | Button.appendChild( ButtonLink ); | ||
+ | Header.insertBefore( Button, Header.childNodes[0] ); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | for(var index in TableIndexes){ | ||
+ | var Table = TableIndexes[index]; | ||
+ | if(hasClass(Table,"collapsed")||(TableIndex>Palette_max && hasClass(Table,"autocollapse"))) | ||
+ | Palette_toggle(index); | ||
+ | } | ||
+ | } | ||
+ | addOnloadHook(Palette); | ||
+ | |||
+ | |||
/** | /** | ||
* Pour [[Modèle:Boîte déroulante]] | * Pour [[Modèle:Boîte déroulante]] |
Version du 20 juin 2012 à 14:38
/* Any JavaScript here will be loaded for all users on every page load. */ /** * Boîtes déroulantes * * Pour [[Modèle:Méta palette de navigation]] */ var Palette_Enrouler = '[masquer]'; var Palette_Derouler = '[afficher]'; var Palette_max = 1; var Palette_index = -1; function Palette_toggle(indexPalette){ var Button = document.getElementById( "collapseButton" + indexPalette); var Table = document.getElementById( "collapsibleTable" + indexPalette); if (!Table || !Button) return false; var Rows = Table.rows; var RowDisplay = "none"; if (Button.firstChild.data == Palette_Derouler) { Button.firstChild.data = Palette_Enrouler; RowDisplay = Rows[0].style.display; } else { Button.firstChild.data = Palette_Derouler; } for (var i = 1; i < Rows.length; i++) { Rows[i].style.display = RowDisplay } } function Palette(Element){ if(!Element) Element = document; var TableIndex = 0; var TableIndexes = new Array(); var Tables = Element.getElementsByTagName( "table" ); for ( var i = 0; i < Tables.length; i++ ) { if ( hasClass( Tables[i], "collapsible" ) ) { var Table = Tables[i]; var Header = Table.getElementsByTagName( "tr" )[0].getElementsByTagName( "th" )[0]; /* only add button and increment count if there is a header row to work with */ if (Header) { TableIndex++ Palette_index++; TableIndexes[Palette_index] = Table; Table.setAttribute( "id", "collapsibleTable" + Palette_index ); var Button = document.createElement( "span" ); var ButtonLink = document.createElement( "a" ); var ButtonText = document.createTextNode( Palette_Enrouler ); Button.className = "navboxToggle"; ButtonLink.setAttribute( "id", "collapseButton" + Palette_index ); ButtonLink.setAttribute( "href", "javascript:;" ); addHandler( ButtonLink, "click", new Function( "evt", "Palette_toggle(" + Palette_index + " ); return killEvt( evt );") ); ButtonLink.appendChild( ButtonText ); Button.appendChild( document.createTextNode("\u00a0")); //ajout d'un espace insécable pour décoller ce bouton du texte de la celulle Button.appendChild( ButtonLink ); Header.insertBefore( Button, Header.childNodes[0] ); } } } for(var index in TableIndexes){ var Table = TableIndexes[index]; if(hasClass(Table,"collapsed")||(TableIndex>Palette_max && hasClass(Table,"autocollapse"))) Palette_toggle(index); } } addOnloadHook(Palette); /** * Pour [[Modèle:Boîte déroulante]] */ var BoiteDeroulante_Enrouler = '[masquer]'; var BoiteDeroulante_Derouler = '[afficher]'; var BoiteDeroulante_max = 0; var BoiteDeroulante_index = -1; function BoiteDeroulante_toggle(indexBoiteDeroulante){ var NavFrame = document.getElementById("NavFrame" + indexBoiteDeroulante); var NavToggle = document.getElementById("NavToggle" + indexBoiteDeroulante); var CaptionContainer = document.getElementById("NavCaption" + indexBoiteDeroulante); if (!NavFrame || !NavToggle || !CaptionContainer) return; var caption = new Array(); var CaptionSpans = CaptionContainer.getElementsByTagName('span'); caption[0] = CaptionSpans[0].innerHTML; caption[1] = CaptionSpans[1].innerHTML; var Contents = NavFrame.getElementsByTagName('div'); if (NavToggle.innerHTML == caption[1]) { NavToggle.innerHTML = caption[0]; for(var a=0,m=Contents.length;a<m;a++){ if(hasClass(Contents[a], "NavContent")){ Contents[a].style.display = 'none'; return; } } }else{ NavToggle.innerHTML = caption[1]; for(var a=0,m=Contents.length;a<m;a++){ if(hasClass(Contents[a], "NavContent")){ Contents[a].style.display = 'block'; return; } } } } function BoiteDeroulante(Element){ if(!Element) Element = document; var NavFrameCount = -1; var NavFrames = Element.getElementsByTagName("div"); for(var i=0,l=NavFrames.length;i<l;i++){ if(hasClass(NavFrames[i], "NavFrame")){ var NavFrame = NavFrames[i]; NavFrameCount++; BoiteDeroulante_index++; if (NavFrame.title && NavFrame.title.indexOf("/")!=-1) { var Enrouler = NavFrame.title.HTMLize().split("/")[1]; var Derouler = NavFrame.title.HTMLize().split("/")[0]; }else{ var Enrouler = BoiteDeroulante_Enrouler; var Derouler = BoiteDeroulante_Derouler; } NavFrame.title=''; var CaptionContainer = document.createElement('span'); CaptionContainer.id = 'NavCaption' + BoiteDeroulante_index; CaptionContainer.style.display = "none"; CaptionContainer.innerHTML = '<span>' + Derouler + '</span><span>' + Enrouler + '</span>'; NavFrame.appendChild(CaptionContainer); var NavToggle = document.createElement("a"); NavToggle.className = 'NavToggle'; NavToggle.id = 'NavToggle' + BoiteDeroulante_index; NavToggle.href = 'javascript:BoiteDeroulante_toggle(' + BoiteDeroulante_index + ');'; var NavToggleText = document.createTextNode(Enrouler); NavToggle.appendChild(NavToggleText); NavFrame.insertBefore( NavToggle, NavFrame.firstChild ); NavFrame.id = 'NavFrame' + BoiteDeroulante_index; if (BoiteDeroulante_max <= NavFrameCount) { BoiteDeroulante_toggle(BoiteDeroulante_index); } } } } addOnloadHook(BoiteDeroulante);