Difference between revisions of "MediaWiki:Common.js"
From BroaDWcast
Jump to navigationJump to searchJohn Lavalie (talk | contribs) |
John Lavalie (talk | contribs) |
||
Line 44: | Line 44: | ||
ModifySidebar("remove", "toolbox", "Page information", "http://gallifreybase.com/w/index.php?title=Main_Page&action=info"); | 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"); | 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') ); | ||
+ | } | ||
+ | } ); | ||
+ | } ); |
Revision as of 03:34, 24 August 2018
/* Any JavaScript here will be loaded for all users on every page load. */ /* add redirect button */ var pagename = document.title; pagename = pagename.replace("Editing ", "#"); pagename = pagename.replace(" - BroaDWcast", ""); var button = { "imageFile": "images/d/d0/Redirect.JPG", // image to be shown on the button, 22x22 pixels "speedTip": "redirect", // tooltip when hovering the mouse over the button "tagOpen": "#REDIRECT [[", // the text to use to mark the beginning of the block "tagClose": pagename + "]]", // the text to use to mark the end of the block "sampleText": "" // the sample text to place inside the block }; mwCustomEditButtons.push(button); /* add custom external file button */ var buttonFile = { "imageFile": "images/a/a8/Edit_file.png", "speedTip": "external file", "tagOpen": "[[", "tagClose": "|thumb|right|250px]]", "sampleText": "Example.jpg" }; mwCustomEditButtons.push(buttonFile); /* add custom gallery button */ var buttonGallery = { "imageFile": "images/a/a4/Vector_toolbar_bold_G_button.png", "speedTip": "gallery", "tagOpen": "<gallery caption=\" \">\rFile:", "tagClose": "|caption\r</gallery>", "sampleText": "Example.jpg" }; mwCustomEditButtons.push(buttonGallery); /* count rows */ var rowCount = document.getElementById('conTable').rows.length; //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') ); } } ); } );