MediaWiki:Common.js: Unterschied zwischen den Versionen

Aus Sokradia
Zur Navigation springen Zur Suche springen
KKeine Bearbeitungszusammenfassung
Markierung: Zurückgesetzt
KKeine Bearbeitungszusammenfassung
Markierung: Manuelle Zurücksetzung
 
Zeile 76: Zeile 76:


jQuery( CustomizeModificationsOfSidebar );
jQuery( CustomizeModificationsOfSidebar );
// New since 2024-05-25
/**
** Dynamic Navigation Bars
**/
// set up the words in your language
var NavigationBarHide = 'Einklappen';
var NavigationBarShow = 'Ausklappen';
// adds show/hide-button to navigation bars
$( function() {
    // 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 == 'NavContent') {
                    NavChild.style.display = 'none';
                }
                else 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 == 'NavContent') {
                    NavChild.style.display = 'block';
                }
                else if (NavChild.className == 'NavToggle') {
                    NavChild.firstChild.data = NavigationBarHide;
                }
            }
        }
    }
    function toggleNavigationBarFunction( indexNavigationBar ) {
        return function() {
            toggleNavigationBar( indexNavigationBar );
            return false;
        };
    }
       
    // iterate over all <div>-elements
    var indexNavigationBar = 0;
    var divs = document.getElementsByTagName( "div" );
    for ( var i = 0; i < divs.length; i++ ) {
        var NavFrame = divs[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', '#' );
            NavToggle.onclick = toggleNavigationBarFunction( indexNavigationBar );
            // add NavToggle-Button as first div-element in <div class="NavFrame">
            var NavToggleText = document.createTextNode( NavigationBarHide );
            NavToggle.appendChild( NavToggleText );
            NavFrame.insertBefore( NavToggle, NavFrame.firstChild );
            NavFrame.setAttribute( 'id', 'NavFrame' + indexNavigationBar );
        }
    }
    // Normalansicht: alle zu, Vorschau: alle auf
    for ( var i = 1; i <= indexNavigationBar; i++ ) {
        toggleNavigationBar( i );
    }
}) ;
/**
* Tabellensortierung merken
*
* based on: http://meta.wikimedia.org/wiki/Help:Sorting#Persistent_sort_states_using_cookies
*/
/*** addOnloadHook( function() {
    jQuery('.sortable').each( function() {
        var id = jQuery(this).attr('id');
        if ( id != undefined )
        {
            // Versuche, passenden Cookie zu lesen
            document.shCookie = jQuery.cookie('sortheader-'+id);
            // Falls kein Cookie gefunden wurde: Gehe alle Spalten durch und schau, ob Standard-Sortierung
            // durch class="ppSortAsc" bzw. class="ppSortDesc" im Spaltenkopf gesetzt.
            // Da nur eine Spalte möglich ist: Falls versehentlich/fehlerhaft mehrere Spalten markiert wurden,
            // zählt die erste in der Tabelle gefundene.
            if ( document.shCookie == undefined ) {
                document.sortheaderId = 0;
                jQuery('#'+id+' th').each( function() {
                    var sh = document.sortheaderId++;
                    if(jQuery(this).hasClass('ppSortAsc')) {
                        document.shCookie = sh;
                        return false;                // beendet Schleife über Spalten => erstes zählt ("false" notwendig für jQuery-each)
                    } else if(jQuery(this).hasClass('ppSortDesc')) {
                        document.shCookie = sh+100;
                        return false;                // beendet Schleife über Spalten => erstes zählt
                    }
                });
            }
            // Gehe alle Spalten durch und führe auf die zu sortierende Spalte
            // entweder zwei Klicks aus (aufsteigend) oder einen Klick (absteigend)
            document.sortheaderId = 0;
            jQuery('#'+id+' th').each( function() {
                var sh = document.sortheaderId++;
                if( sh+100 == document.shCookie ) {
                    jQuery(this).click();
                    jQuery(this).click();
                } else if( sh == document.shCookie ) {
                    jQuery(this).click();
                    sh += 100;
                }
                // Zukünftige "clicks" werden in einem Cookie gespeichert.
                jQuery(this).bind('click', {id: id, sh: sh}, function(e) {
                    jQuery.cookie('sortheader-'+e.data.id, e.data.sh, { expires: 9999 } );
                    e.data.sh += e.data.sh < 100 ? 100 : -100;
                });
            });
        }
    });
});
***/

Aktuelle Version vom 30. Mai 2024, 08:15 Uhr

/* Das folgende JavaScript wird für alle Benutzer geladen. */
/** Namensräume für die Seitenvorschau
 **/
mw.config.set('wgContentNamespaces', [0, 100]);
//
//Hinzufügen oder Entfernen von Abschnitten zur Werkzeugkiste (toolbox) (JavaScript)//
function ModifySidebar( action, section, name, link ) {
	try {
		switch ( section ) {
			case 'languages':
				var target = 'p-lang';
				break;
			case 'toolbox':
				var target = 'p-tb';
				break;
			case 'navigation':
				var target = 'p-navigation';
				break;
			default:
				var target = 'p-' + section;
				break;
		}

		if ( action == 'add' ) {
			var node = document.getElementById( target )
							   .getElementsByTagName( 'div' )[0]
							   .getElementsByTagName( 'ul' )[0];

			var aNode = document.createElement( 'a' );
			var liNode = document.createElement( 'li' );

			aNode.appendChild( document.createTextNode( name ) );
			aNode.setAttribute( 'href', link );
			liNode.appendChild( aNode );
			liNode.className = 'plainlinks';
			node.appendChild( liNode );
		}

		if ( action == 'remove' ) {
			var list = document.getElementById( target )
							   .getElementsByTagName( 'div' )[0]
							   .getElementsByTagName( 'ul' )[0];

			var listelements = list.getElementsByTagName( 'li' );

			for ( var i = 0; i < listelements.length; i++ ) {
				if (
					listelements[i].getElementsByTagName( 'a' )[0].innerHTML == name ||
					listelements[i].getElementsByTagName( 'a' )[0].href == link
				)
				{
					list.removeChild( listelements[i] );
				}
			}
		}


	} catch( e ) {
		// Lass uns einfach ignorieren, was passiert ist
		return;
	}
}

function CustomizeModificationsOfSidebar() {
	// fügt Textbausteine der Toolbox hinzu
	ModifySidebar( 'add', 'toolbox', 'Textbausteine', 'https://cc-zeitlos.synology.me/mediawiki/index.php/Kategorie:Textbausteine' );
	// fügt [[Spezial:Letzte Änderungen ]] der Toolbox hinzu
	ModifySidebar( 'add', 'toolbox', 'Letzte Änderungen', 'https://cc-zeitlos.synology.me/mediawiki/index.php/Spezial:RecentChanges' );
	// fügt [[Special:AllPages]] der Toolbox hinzu
	ModifySidebar( 'add', 'toolbox', 'Alle Seiten', 'https://cc-zeitlos.synology.me/mediawiki/index.php/Special:AllPages' );
	// fügt [[Special:Randompage]] der Toolbox hinzu
	ModifySidebar( 'add', 'toolbox', 'Zufällige Seite', 'https://cc-zeitlos.synology.me/mediawiki/index.php/Special:Randompage' );
	// Entfernt [[Special:Upload|Special:Upload]] aus der Toolbox
	//ModifySidebar( 'remove', 'toolbox', 'Upload file', 'https://cc-zeitlos.synology.me/mediawiki/index.php/Special:Upload' );
}

jQuery( CustomizeModificationsOfSidebar );