MediaWiki:Common.js: diferència entre les revisions

Contingut suprimit Contingut afegit
Maintenance: mw:RL/MGU - Updated deprecated module name
actualització Collapsible tables
Línia 172:
 
/**
* Collapsible tables; *********************************************************reimplemented with mw-collapsible
* Styling is also in place to avoid FOUC
* https://en.wikipedia.org/w/index.php?title=MediaWiki:Common.js&oldid=554529999
*
* Description: Allows tables to be collapsed, showing only the header. See
* Allows tables to be collapsed, showing only the header. See [[WikipediaHelp:NavFrameCollapsing]].
* @version 3.0.0 (2018-05-20)
* Maintainers: [[User:R. Koot]]
* @source https://www.mediawiki.org/wiki/MediaWiki:Gadget-collapsibleTables.js
* @author [[User:R. Koot]]
* @author [[User:Krinkle]]
* @author [[User:TheDJ]]
* @deprecated Since MediaWiki 1.20: Use class="mw-collapsible" instead which
* is supported in MediaWiki core. Shimmable since MediaWiki 1.32
*/
function makeCollapsibleMwCollapsible( $content ) {
var $tables = $content
.find( 'table.collapsible:not(.mw-collapsible)' )
.addClass( 'mw-collapsible' );
 
$.each( $tables, function( index, table ) {
var autoCollapse = 2;
// mw.log.warn( 'This page is using the deprecated class collapsible. Please replace it with mw-collapsible.');
var collapseCaption = 'amaga';
if( $( table ).hasClass( 'collapsed') ) {
var expandCaption = 'mostra';
$( table ).addClass( 'mw-collapsed' );
// mw.log.warn( 'This page is using the deprecated class collapsed. Please replace it with mw-collapsed.');
}
} );
if( $tables.length > 0 ) {
mw.loader.using( 'jquery.makeCollapsible' ).then( function() {
$tables.makeCollapsible();
} );
}
}
mw.hook( 'wikipage.content' ).add( makeCollapsibleMwCollapsible );
 
/**
window.collapseTable = function ( tableIndex ) {
* Add support to mw-collapsible for autocollapse, innercollapse and outercollapse
var Button = document.getElementById( 'collapseButton' + tableIndex );
*
var Table = document.getElementById( 'collapsibleTable' + tableIndex );
* Maintainers: TheDJ
 
*/
if ( !Table || !Button ) {
function mwCollapsibleSetup( $collapsibleContent ) {
return false;
var $element,
}
$toggle,
 
autoCollapseThreshold = 2;
var Rows = Table.rows;
$.each( $collapsibleContent, function (index, element) {
var i;
$element = $( element );
 
if ( $element.hasClass( 'collapsible' ) ) {
if ( Button.firstChild.data === collapseCaption ) {
$element.find('tr:first > th:first').prepend( $element.find('tr:first > * > .mw-collapsible-toggle'));
for ( i = 1; i < Rows.length; i++ ) {
}
Rows[i].style.display = 'none';
if ( $collapsibleContent.length >= autoCollapseThreshold && $element.hasClass( 'autocollapse' ) ) {
}
$element.data( 'mw-collapsible' ).collapse();
Button.firstChild.data = expandCaption;
} else if ( $element.hasClass( 'innercollapse' ) ) {
} else {
if ( for $element.parents( i'.outercollapse' = 1; i < Rows).length; i++> 0 ) {
$element.data( 'mw-collapsible' ).collapse();
Rows[i].style.display = Rows[0].style.display;
}
}
}
Button.firstChild.data = collapseCaption;
// because of colored backgrounds, style the link in the text color
}
// to ensure accessible contrast
};
$toggle = $element.find( '.mw-collapsible-toggle' );
 
if ( $toggle.length ) {
function createCollapseButtons() {
// Make the toggle inherit text color
var tableIndex = 0;
if( $toggle.parent()[0].style.color ) {
var NavigationBoxes = {};
$toggle.find( 'a' ).css( 'color', 'inherit' );
var Tables = document.getElementsByTagName( 'table' );
}
var i;
}
 
} );
function handleButtonLink( index, e ) {
window.collapseTable( index );
e.preventDefault();
}
 
for ( i = 0; i < Tables.length; i++ ) {
if ( $( Tables[i] ).hasClass( 'collapsible' ) ) {
 
/* only add button and increment count if there is a header row to work with */
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', 'collapsibleTable' + tableIndex );
 
var Button = document.createElement( 'span' );
var ButtonLink = document.createElement( 'a' );
var ButtonText = document.createTextNode( collapseCaption );
 
Button.className = 'collapseButton'; /* Styles are declared in Common.css */
 
ButtonLink.style.color = Header.style.color;
ButtonLink.setAttribute( 'id', 'collapseButton' + tableIndex );
ButtonLink.setAttribute( 'href', '#' );
$( ButtonLink ).on( 'click', $.proxy( handleButtonLink, ButtonLink, tableIndex ) );
ButtonLink.appendChild( ButtonText );
 
Button.appendChild( document.createTextNode( '[' ) );
Button.appendChild( ButtonLink );
Button.appendChild( document.createTextNode( ']' ) );
 
Header.insertBefore( Button, Header.firstChild );
tableIndex++;
}
}
 
for ( i = 0; i < tableIndex; i++ ) {
if ( $( NavigationBoxes[i] ).hasClass( 'collapsed' ) || ( tableIndex >= autoCollapse && $( NavigationBoxes[i] ).hasClass( 'autocollapse' ) ) ) {
window.collapseTable( i );
}
else if ( $( NavigationBoxes[i] ).hasClass ( 'innercollapse' ) ) {
var element = NavigationBoxes[i];
while ((element = element.parentNode)) {
if ( $( element ).hasClass( 'outercollapse' ) ) {
window.collapseTable ( i );
break;
}
}
}
}
}
 
mw.hook( 'wikipage.collapsibleContent' ).add( mwCollapsibleSetup );
$( createCollapseButtons );
 
/**
Linha 275 ⟶ 245:
* Maintainers: UNMAINTAINED
*/
 
var collapseCaption = 'hide';
var expandCaption = 'show';
 
/* set up the words in your language */