Difference between revisions of "MediaWiki:Common.js"
From BroaDWcast
Jump to navigationJump to searchJohn Lavalie (talk | contribs) |
John Lavalie (talk | contribs) |
||
| (22 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
/* Any JavaScript here will be loaded for all users on every page load. */ | /* Any JavaScript here will be loaded for all users on every page load. */ | ||
| − | /* | + | /* count rows */ |
| − | var | + | var rowCount = document.getElementById('conTable').rows.length; |
| − | + | rowCount = rowCount - 1 | |
| − | + | rowCount = rowCount - (rowCount % 10) | |
| + | document.getElementById("conCount").innerHTML = rowCount; | ||
| − | + | //removes Special:Upload from toolbox | |
| − | + | ModifySidebar("remove", "toolbox", "Upload file", "http://gallifreybase.com/w/index.php/Special:Upload"); | |
| − | + | ModifySidebar("remove", "toolbox", "What links here", "http://gallifreybase.com/w/index.php/Special:WhatLinksHere/Main_Page"); | |
| − | + | ModifySidebar("remove", "toolbox", "Special pages", "http://gallifreybase.com/w/index.php/Special:SpecialPages"); | |
| − | + | ModifySidebar("remove", "toolbox", "Page information", "http://gallifreybase.com/w/index.php?title=Main_Page&action=info"); | |
| − | + | ModifySidebar("remove", "toolbox", "Related changes", "http://gallifreybase.com/w/index.php/Special:RecentChangesLinked/Main_Page"); | |
| − | |||
| − | |||
| − | /* | + | /** |
| − | var | + | * Find all header rows in a thead-less table and put them in a <thead> tag. |
| − | + | * This only treats a row as a header row if it contains only <th>s (no <td>s) | |
| − | + | * and if it is preceded entirely by header rows. The algorithm stops when | |
| − | + | * it encounters the first non-header row. | |
| − | + | * | |
| − | + | * After this, it will look at all rows at the bottom for footer rows | |
| − | }; | + | * And place these in a tfoot using similar rules. |
| − | + | * | |
| + | * This function was copied from MediaWiki's jquery.tablesorter module | ||
| + | * @param {jQuery} $table object for a <table> | ||
| + | */ | ||
| + | function emulateTHeadAndFoot( $table ) { | ||
| + | var $thead, $tfoot, i, len, | ||
| + | $rows = $table.find( '> tbody > tr' ); | ||
| + | if ( !$table.get( 0 ).tHead ) { | ||
| + | $thead = $( '<thead>' ); | ||
| + | $rows.each( function () { | ||
| + | if ( $( this ).children( 'td' ).length ) { | ||
| + | // This row contains a <td>, so it's not a header row | ||
| + | // Stop here | ||
| + | return false; | ||
| + | } | ||
| + | $thead.append( this ); | ||
| + | } ); | ||
| + | $table.find( ' > tbody:first' ).before( $thead ); | ||
| + | } | ||
| + | if ( !$table.get( 0 ).tFoot ) { | ||
| + | $tfoot = $( '<tfoot>' ); | ||
| + | len = $rows.length; | ||
| + | for ( i = len - 1; i >= 0; i-- ) { | ||
| + | if ( $( $rows[ i ] ).children( 'td' ).length ) { | ||
| + | break; | ||
| + | } | ||
| + | $tfoot.prepend( $( $rows[ i ] ) ); | ||
| + | } | ||
| + | $table.append( $tfoot ); | ||
| + | } | ||
| + | } | ||
| + | |||
| + | mw.hook('wikipage.content').add( function( $content ) { | ||
| + | // Do this for wikitable, but sortable does it on it's own already | ||
| + | $content.find('.wikitable:not(.sortable) ').each( function ( i, table ) { | ||
| + | if ( table.tBodies && !table.tHead ) { | ||
| + | // No thead found. Look for rows with <th>s and | ||
| + | // move them into a <thead> tag or a <tfoot> tag | ||
| + | emulateTHeadAndFoot( $(table).addClass('mw-sticky-header') ); | ||
| + | } | ||
| + | } ); | ||
| + | } ); | ||
Latest revision as of 19:53, 21 March 2020
/* Any JavaScript here will be loaded for all users on every page load. */
/* count rows */
var rowCount = document.getElementById('conTable').rows.length;
rowCount = rowCount - 1
rowCount = rowCount - (rowCount % 10)
document.getElementById("conCount").innerHTML = rowCount;
//removes Special:Upload from toolbox
ModifySidebar("remove", "toolbox", "Upload file", "http://gallifreybase.com/w/index.php/Special:Upload");
ModifySidebar("remove", "toolbox", "What links here", "http://gallifreybase.com/w/index.php/Special:WhatLinksHere/Main_Page");
ModifySidebar("remove", "toolbox", "Special pages", "http://gallifreybase.com/w/index.php/Special:SpecialPages");
ModifySidebar("remove", "toolbox", "Page information", "http://gallifreybase.com/w/index.php?title=Main_Page&action=info");
ModifySidebar("remove", "toolbox", "Related changes", "http://gallifreybase.com/w/index.php/Special:RecentChangesLinked/Main_Page");
/**
* Find all header rows in a thead-less table and put them in a <thead> tag.
* This only treats a row as a header row if it contains only <th>s (no <td>s)
* and if it is preceded entirely by header rows. The algorithm stops when
* it encounters the first non-header row.
*
* After this, it will look at all rows at the bottom for footer rows
* And place these in a tfoot using similar rules.
*
* This function was copied from MediaWiki's jquery.tablesorter module
* @param {jQuery} $table object for a <table>
*/
function emulateTHeadAndFoot( $table ) {
var $thead, $tfoot, i, len,
$rows = $table.find( '> tbody > tr' );
if ( !$table.get( 0 ).tHead ) {
$thead = $( '<thead>' );
$rows.each( function () {
if ( $( this ).children( 'td' ).length ) {
// This row contains a <td>, so it's not a header row
// Stop here
return false;
}
$thead.append( this );
} );
$table.find( ' > tbody:first' ).before( $thead );
}
if ( !$table.get( 0 ).tFoot ) {
$tfoot = $( '<tfoot>' );
len = $rows.length;
for ( i = len - 1; i >= 0; i-- ) {
if ( $( $rows[ i ] ).children( 'td' ).length ) {
break;
}
$tfoot.prepend( $( $rows[ i ] ) );
}
$table.append( $tfoot );
}
}
mw.hook('wikipage.content').add( function( $content ) {
// Do this for wikitable, but sortable does it on it's own already
$content.find('.wikitable:not(.sortable) ').each( function ( i, table ) {
if ( table.tBodies && !table.tHead ) {
// No thead found. Look for rows with <th>s and
// move them into a <thead> tag or a <tfoot> tag
emulateTHeadAndFoot( $(table).addClass('mw-sticky-header') );
}
} );
} );