Differenze tra le versioni di "MediaWiki:Common.js"
Riga 45: | Riga 45: | ||
NavigationBoxes [ tableIndex ] = Tables [ i ] ; | NavigationBoxes [ tableIndex ] = Tables [ i ] ; | ||
− | Tables [ i ] . setAttribute ( 'id' , 'collapsibleTable' | + | Tables [ i ] . setAttribute ( 'id' , tableIndex + 'collapsibleTable' ) ; |
var Button = document. createElement ( 'span' ) ; | var Button = document. createElement ( 'span' ) ; | ||
Riga 62: | Riga 62: | ||
Button. appendChild ( document. createTextNode ( ']' ) ) ; | Button. appendChild ( document. createTextNode ( ']' ) ) ; | ||
− | Header. | + | Header. insertAfter ( Button , Header. childNodes [ 0 ] ) ; |
tableIndex ++; | tableIndex ++; | ||
} | } |
Versione delle 18:34, 1 set 2011
var autoCollapse = 2 ;
var collapseCaption = 'Nascondi' ;
var expandCaption = 'Mostra' ;
function collapseTable ( tableIndex ) {
var Button = document. getElementById ( tableIndex + 'collapseButton' ) ;
var Table = document. getElementById ( tableIndex + 'collapsibleTable' ) ;
if ( ! Table || ! Button ) {
return false ;
}
var Rows = Table. rows ;
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' ) ) {
var HeaderRow = Tables [ i ] . getElementsByTagName ( 'tr' ) [ 0 ] ;
if ( ! HeaderRow ) {
continue ;
}
var Header = HeaderRow. getElementsByTagName ( 'th' ) [ 0 ] ;
if ( ! Header ) {
continue ;
}
NavigationBoxes [ tableIndex ] = Tables [ i ] ;
Tables [ i ] . setAttribute ( 'id' , tableIndex + 'collapsibleTable' ) ;
var Button = document. createElement ( 'span' ) ;
var ButtonLink = document. createElement ( 'a' ) ;
var ButtonText = document. createTextNode ( collapseCaption ) ;
Button. className = 'collapseButton' ; // Styles are declared in [[MediaWiki:Common.css]]
ButtonLink. style . color = Header. style . color ;
ButtonLink. setAttribute ( 'id' , tableIndex + 'collapseButton' ) ;
ButtonLink. setAttribute ( 'href' , "javascript:collapseTable(" + tableIndex + ");" ) ;
ButtonLink. appendChild ( ButtonText ) ;
Button. appendChild ( document. createTextNode ( '[' ) ) ;
Button. appendChild ( ButtonLink ) ;
Button. appendChild ( document. createTextNode ( ']' ) ) ;
Header. insertAfter ( 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 ) ;
} else if ( hasClass ( NavigationBoxes [ i ] , 'innercollapse' ) ) {
var element = NavigationBoxes [ i ] ;
while ( element = element. parentNode ) {
if ( hasClass ( element , 'outercollapse' ) ) {
collapseTable ( i ) ;
break ;
}
}
}
}
}
addOnloadHook ( createCollapseButtons ) ;
var hasClass = ( function ( ) {
var reCache = { } ;
return function ( element , className ) {
return ( reCache [ className ] ? reCache [ className ] : ( reCache [ className ] = new RegExp ( "(?: \\ s|^)" + className + "(?: \\ s|$)" ) ) ) . test ( element. className ) ;
} ;
} ) ( ) ;