Änderungen

K
keine Bearbeitungszusammenfassung
Zeile 20: Zeile 20:  
   
 
   
 
  // END Enable multiple onload functions
 
  // END Enable multiple onload functions
 +
// ============================================================
 +
 +
// ============================================================
 +
// BEGIN Dynamic Navigation Bars
 +
// NEEDS Enable multiple onload functions
 +
 +
// set up the words in your language
 +
var NavigationBarHide = 'Ausblenden';
 +
var NavigationBarShow = 'Einblenden';
 +
 +
// set up max count of Navigation Bars on page,
 +
// if there are more, all will be hidden
 +
// NavigationBarShowDefault = 0; // all bars will be hidden
 +
// NavigationBarShowDefault = 1; // on pages with more than 1 bar all bars will be hidden
 +
if (typeof NavigationBarShowDefault == 'undefined' ) {
 +
    var NavigationBarShowDefault = 1;
 +
}
 +
 +
// shows and hides content and picture (if available) of navigation bars
 +
// Parameters:
 +
//    indexNavigationBar: the index of navigation bar to be toggled
 +
function toggleNavigationBar(indexNavigationBar)
 +
{
 +
    var NavToggle = document.getElementById("NavToggle" + indexNavigationBar);
 +
    var NavFrame = document.getElementById("NavFrame" + indexNavigationBar);
 +
 +
    if (!NavFrame || !NavToggle) {
 +
        return false;
 +
    }
 +
 +
    // if shown now
 +
    if (NavToggle.firstChild.data == NavigationBarHide) {
 +
        for (
 +
                var NavChild = NavFrame.firstChild;
 +
                NavChild != null;
 +
                NavChild = NavChild.nextSibling
 +
            ) {
 +
            if (NavChild.className == 'NavPic') {
 +
                NavChild.style.display = 'none';
 +
            }
 +
            if (NavChild.className == 'NavContent') {
 +
                NavChild.style.display = 'none';
 +
            }
 +
            if (NavChild.className == 'NavToggle') {
 +
                NavChild.firstChild.data = NavigationBarShow;
 +
            }
 +
        }
 +
 +
    // if hidden now
 +
    } else if (NavToggle.firstChild.data == NavigationBarShow) {
 +
        for (
 +
                var NavChild = NavFrame.firstChild;
 +
                NavChild != null;
 +
                NavChild = NavChild.nextSibling
 +
            ) {
 +
            if (NavChild.className == 'NavPic') {
 +
                NavChild.style.display = 'block';
 +
            }
 +
            if (NavChild.className == 'NavContent') {
 +
                NavChild.style.display = 'block';
 +
            }
 +
            if (NavChild.className == 'NavToggle') {
 +
                NavChild.firstChild.data = NavigationBarHide;
 +
            }
 +
        }
 +
    }
 +
}
 +
 +
// adds show/hide-button to navigation bars
 +
function createNavigationBarToggleButton()
 +
{
 +
    var indexNavigationBar = 0;
 +
    // iterate over all < div >-elements
 +
    for(
 +
            var i=0;
 +
            NavFrame = document.getElementsByTagName("div")[i];
 +
            i++
 +
        ) {
 +
        // if found a navigation bar
 +
        if (NavFrame.className == "NavFrame") {
 +
 +
            indexNavigationBar++;
 +
            var NavToggle = document.createElement("a");
 +
            NavToggle.className = 'NavToggle';
 +
            NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar);
 +
            NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');');
 +
 +
            var NavToggleText = document.createTextNode(NavigationBarHide);
 +
            NavToggle.appendChild(NavToggleText);
 +
 +
            // add NavToggle-Button as first div-element
 +
            // in < div class="NavFrame" >
 +
            NavFrame.insertBefore(
 +
                NavToggle,
 +
                NavFrame.firstChild
 +
            );
 +
            NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
 +
        }
 +
    }
 +
    // if more Navigation Bars found than Default: hide all
 +
    if (NavigationBarShowDefault < indexNavigationBar) {
 +
        for(
 +
                var i=1;
 +
                i<=indexNavigationBar;
 +
                i++
 +
        ) {
 +
            toggleNavigationBar(i);
 +
        }
 +
    }
 +
 +
}
 +
 +
aOnloadFunctions[aOnloadFunctions.length] = createNavigationBarToggleButton;
 +
 +
// END Dynamic Navigation Bars
 
  // ============================================================
 
  // ============================================================
   −
/**
+
 
  * Collapsible tables *********************************************************
+
// ============================================================
  *
+
  // BEGIN Collapsible Tables
  * Description: Allows tables to be collapsed, showing only the header. See
+
  //
  *              [[Wikipedia:NavFrame]].
+
  // Description: Allows tables to be collapsed, showing only the header.
* Maintainers: [[User:R. Koot]]
+
  //
*/
   
   
 
   
 
var autoCollapse = 2;
 
var autoCollapse = 2;
Zeile 120: Zeile 234:  
mw.hook( 'wikipage.content' ).add( createCollapseButtons );
 
mw.hook( 'wikipage.content' ).add( createCollapseButtons );
   −
/**
+
// END Collapsible Tables
* Dynamic Navigation Bars (experimental)
+
  // ============================================================
*
  −
* Description: See [[Wikipedia:NavFrame]].
  −
* Maintainers: UNMAINTAINED
  −
*/
  −
   
  −
/* set up the words in your language */
  −
var NavigationBarHide = '[' + Ausblenden + ']';
  −
var NavigationBarShow = '[' + Einblenden + ']';
  −
  −
/**
  −
* Shows and hides content and picture (if available) of navigation bars
  −
* Parameters:
  −
*    indexNavigationBar: the index of navigation bar to be toggled
  −
**/
  −
window.toggleNavigationBar = function ( indexNavigationBar, event ) {
  −
    var NavToggle = document.getElementById( 'NavToggle' + indexNavigationBar );
  −
    var NavFrame = document.getElementById( 'NavFrame' + indexNavigationBar );
  −
    var NavChild;
  −
  −
    if ( !NavFrame || !NavToggle ) {
  −
        return false;
  −
    }
  −
  −
    /* if shown now */
  −
    if ( NavToggle.firstChild.data === NavigationBarHide ) {
  −
        for ( NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling ) {
  −
            if ( $( NavChild ).hasClass( 'NavContent' ) || $( NavChild ).hasClass( 'NavPic' ) ) {
  −
                NavChild.style.display = 'none';
  −
            }
  −
        }
  −
    NavToggle.firstChild.data = NavigationBarShow;
  −
  −
    /* if hidden now */
  −
    } else if ( NavToggle.firstChild.data === NavigationBarShow ) {
  −
        for ( NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling ) {
  −
            if ( $( NavChild ).hasClass( 'NavContent' ) || $( NavChild ).hasClass( 'NavPic' ) ) {
  −
                NavChild.style.display = 'block';
  −
            }
  −
        }
  −
        NavToggle.firstChild.data = NavigationBarHide;
  −
    }
  −
  −
    event.preventDefault();
  −
};
  −
  −
/* adds show/hide-button to navigation bars */
  −
function createNavigationBarToggleButton() {
  −
    var indexNavigationBar = 0;
  −
    var NavFrame;
  −
    var NavChild;
  −
    /* iterate over all < div >-elements */
  −
    var divs = document.getElementsByTagName( 'div' );
  −
    for ( var i = 0; (NavFrame = divs[i]); i++ ) {
  −
        /* if found a navigation bar */
  −
        if ( $( NavFrame ).hasClass( 'NavFrame' ) ) {
  −
  −
            indexNavigationBar++;
  −
            var NavToggle = document.createElement( 'a' );
  −
            NavToggle.className = 'NavToggle';
  −
            NavToggle.setAttribute( 'id', 'NavToggle' + indexNavigationBar );
  −
            NavToggle.setAttribute( 'href', '#' );
  −
            $( NavToggle ).on( 'click', $.proxy( window.toggleNavigationBar, window, indexNavigationBar ) );
  −
  −
            var isCollapsed = $( NavFrame ).hasClass( 'collapsed' );
  −
            /**
  −
            * Check if any children are already hidden.  This loop is here for backwards compatibility:
  −
            * the old way of making NavFrames start out collapsed was to manually add style="display:none"
  −
            * to all the NavPic/NavContent elements.  Since this was bad for accessibility (no way to make
  −
            * the content visible without JavaScript support), the new recommended way is to add the class
  −
            * "collapsed" to the NavFrame itself, just like with collapsible tables.
  −
            */
  −
            for ( NavChild = NavFrame.firstChild; NavChild != null && !isCollapsed; NavChild = NavChild.nextSibling ) {
  −
                if ( $( NavChild ).hasClass( 'NavPic' ) || $( NavChild ).hasClass( 'NavContent' ) ) {
  −
                    if ( NavChild.style.display === 'none' ) {
  −
                        isCollapsed = true;
  −
                    }
  −
                }
  −
            }
  −
            if ( isCollapsed ) {
  −
                for ( NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling ) {
  −
                    if ( $( NavChild ).hasClass( 'NavPic' ) || $( NavChild ).hasClass( 'NavContent' ) ) {
  −
                        NavChild.style.display = 'none';
  −
                    }
  −
                }
  −
            }
  −
            var NavToggleText = document.createTextNode( isCollapsed ? NavigationBarShow : NavigationBarHide );
  −
            NavToggle.appendChild( NavToggleText );
  −
  −
            /* Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked) */
  −
            for( var j = 0; j < NavFrame.childNodes.length; j++ ) {
  −
                if ( $( NavFrame.childNodes[j] ).hasClass( 'NavHead' ) ) {
  −
                    NavToggle.style.color = NavFrame.childNodes[j].style.color;
  −
                    NavFrame.childNodes[j].appendChild( NavToggle );
  −
                }
  −
            }
  −
            NavFrame.setAttribute( 'id', 'NavFrame' + indexNavigationBar );
  −
        }
  −
    }
  −
}
  −
  −
mw.hook( 'wikipage.content' ).add( createNavigationBarToggleButton );
 
286

Bearbeitungen