|
|
| (6 intermediate revisions by the same user not shown) |
| Line 1: |
Line 1: |
| mw.loader.load( 'jquery.effects.blind' );
| |
|
| |
| /** Collapsible tables *********************************************************
| |
| *
| |
| * Description: Allows tables to be collapsed, showing only the header. See
| |
| * [[Wikipedia:NavFrame]].
| |
| * Maintainers: [[User:R. Koot]]
| |
| * Source: Wikipedia Common.js, imported 2/1/10
| |
| * Additional Notes: This is the primary method used to collapse navigational templates.
| |
| * Import Notes: Dragon Quest wiki does not currently use the 'innercollapse', 'outercollapse', or 'autocollapse'
| |
| * functionality. In IE, the size of tables are set to be the same when shown or hidden, this is not the case
| |
| * in Firefox or Chrome. It is generally preferred to allow tables to size themselves rather than specify a fixed width.
| |
| * Usage: Create a table and give it the class "collapsible". Ensure that the table has a header row. Add the class
| |
| * "collapsed" if you wish the table to be collapsed on page load.
| |
| */
| |
|
| |
| var autoCollapse = 2;
| |
| var collapseCaption = "hide";
| |
| var expandCaption = "show";
| |
|
| |
| function collapseTable( tableIndex )
| |
| {
| |
| var Button = document.getElementById( "collapseButton" + tableIndex );
| |
| var Table = document.getElementById( "collapsibleTable" + tableIndex );
| |
|
| |
| if ( !Table || !Button ) {
| |
| return false;
| |
| }
| |
|
| |
| // run the effect
| |
| var options = {};
| |
| var targt = "#collapsibleTable" + tableIndex + " tr";
| |
| $( targt ).toggle("blind", options, 500 );
| |
| $( targt + ":first-child").show();
| |
|
| |
| //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 createTableCollapseButtons()
| |
| {
| |
| 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" ) ) {
| |
|
| |
| /* 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", "javascript:collapseTable(" + tableIndex + ");" );
| |
| ButtonLink.appendChild( ButtonText );
| |
|
| |
| // fix width of table to be the same when shown or hidden (IE only)
| |
| // Tables[i].style.width = Tables[i].offsetWidth;
| |
|
| |
| Button.appendChild( document.createTextNode( "[" ) );
| |
| Button.appendChild( ButtonLink );
| |
| Button.appendChild( document.createTextNode( "]" ) );
| |
|
| |
| Header.insertBefore( Button, Header.childNodes[0] );
| |
|
| |
| $( "#collapseButton" + tableIndex ).click(function() {
| |
| collapseTable(tableIndex);
| |
| return false;
| |
| });
| |
| 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( createTableCollapseButtons );
| |
|
| |
| // install [[Wikipedia:User:Cacycle/wikEd]] in-browser text editor | | // install [[Wikipedia:User:Cacycle/wikEd]] in-browser text editor |
| //document.write('<script type="text/javascript" src="' | | //document.write('<script type="text/javascript" src="' |
| //+ 'http://en.wikipedia.org/w/index.php?title=User:Cacycle/wikEd.js' | | //+ 'http://en.wikipedia.org/w/index.php?title=User:Cacycle/wikEd.js' |
| //+ '&action=raw&ctype=text/javascript"></' + 'script>'); | | //+ '&action=raw&ctype=text/javascript"></' + 'script>'); |