MediaWiki:Common.js: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Gerard (Diskussion | Beiträge) KKeine Bearbeitungszusammenfassung Markierung: Manuelle Zurücksetzung |
Gerard (Diskussion | Beiträge) KKeine Bearbeitungszusammenfassung Markierung: Zurückgesetzt |
||
Zeile 76: | Zeile 76: | ||
jQuery( CustomizeModificationsOfSidebar ); | jQuery( CustomizeModificationsOfSidebar ); | ||
/** | |||
** 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; | |||
}); | |||
}); | |||
} | |||
}); | |||
}); | |||
***/ |
Version vom 30. Mai 2024, 07:43 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 );
/**
** 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;
});
});
}
});
});
***/