Difference between revisions of "MediaWiki:Common.js"

From BroaDWcast
Jump to navigationJump to search
 
(29 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 rowCount = document.getElementById('conTable').rows.length;
 +
rowCount = rowCount - 1
 +
rowCount = rowCount - (rowCount % 10)
 +
document.getElementById("conCount").innerHTML = rowCount;
  
/* add redirect button */
+
//removes Special:Upload from toolbox
var pagename = document.title;
+
  ModifySidebar("remove", "toolbox", "Upload file", "http://gallifreybase.com/w/index.php/Special:Upload");
pagename = pagename.replace("Editing ", "#");
+
  ModifySidebar("remove", "toolbox", "What links here", "http://gallifreybase.com/w/index.php/Special:WhatLinksHere/Main_Page");
pagename = pagename.replace(" - BroaDWcast", "");
+
  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 button = {
+
/**
"imageFile": "images/d/d0/Redirect.JPG", // image to be shown on the button, 22x22 pixels
+
* Find all header rows in a thead-less table and put them in a <thead> tag.
"speedTip": "redirect",                  // tooltip when hovering the mouse over the button
+
* This only treats a row as a header row if it contains only <th>s (no <td>s)
"tagOpen": "#REDIRECT [[",              // the text to use to mark the beginning of the block
+
* and if it is preceded entirely by header rows. The algorithm stops when
"tagClose": pagename + "]]",             // the text to use to mark the end of the block
+
* it encounters the first non-header row.
"sampleText": ""                        // the sample text to place inside the block
+
*
};
+
* After this, it will look at all rows at the bottom for footer rows
mwCustomEditButtons.push(button);
+
* 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') );
		}
	} );
} );