MediaWiki:Common.js: Unterschied zwischen den Versionen
No-L (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
K Veraltete ImportScript-Aufrufe migriert |
||
| (2 dazwischenliegende Versionen von einem anderen Benutzer werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
/* Jedes JavaScript hier wird für alle Benutzer für jede Seite geladen. */ | |||
if ( mw.config.get( 'wgAction' ) == 'edit' || mw.config.get( 'wgAction' ) == 'submit' || mw.config.get( ' | /** | ||
* Sortierung von Umlauten und ß auch ohne [[Vorlage:SortKey]] ermöglichen | |||
* For jquery.tablesorter.js | |||
*/ | |||
mw.config.set( 'tableSorterCollation', {'Ä':'A', 'Ö':'O', 'Ü':'U', 'ä':'a', 'ö':'o', 'ü':'u', 'ß':'ss'} ); | |||
/** | |||
* load the Edittools on [[Special:Upload]] and prefill the summary textarea | |||
* Load pages: [[MediaWiki:Onlyifuploading.js]], [[MediaWiki:Onlyifediting.js]] | |||
*/ | |||
if (mw.config.get( 'wgCanonicalSpecialPageName' ) === 'Upload') { | |||
mw.loader.load( '/mediawiki/index.php?title=MediaWiki:Onlyifuploading.js&action=raw&ctype=text/javascript' ); | |||
mw.loader.load( '/mediawiki/index.php?title=MediaWiki:Onlyifediting.js&action=raw&ctype=text/javascript' ); | |||
} | |||
/** | |||
* load the Edittools ([[MediaWiki:Edittools]], the part under the edit form) | |||
* Load page: [[MediaWiki:Onlyifediting.js]] | |||
*/ | |||
if ( mw.config.get( 'wgAction' ) === 'edit' || mw.config.get( 'wgAction' ) === 'submit' ) { | |||
mw.loader.load( '/mediawiki/index.php?title=MediaWiki:Onlyifediting.js&action=raw&ctype=text/javascript' ); | |||
} | |||
//================================================================================ | |||
//*** Dynamic Navigation Bars | |||
// set up max count of Navigation Bars on page, | |||
// if there are more, all will be hidden | |||
// mw.user.options.set( 'NavigationBarShowDefault', 0 ); // all bars will be hidden | |||
// mw.user.options.set( 'NavigationBarShowDefault', 1 ); // on pages with more than 1 bar all bars will be hidden | |||
// adds show/hide-button to navigation bars | |||
// using 'jquery.makeCollapsible': for messages | |||
// using 'user', 'mediawiki.user', 'user.options': wait for overrides in user.js | |||
mw.loader.using( [ 'mediawiki.util', 'jquery.makeCollapsible', 'user', 'mediawiki.user', 'user.options' ], function() { $(function() { | |||
// allow setting NavigationBarShowDefault | |||
var showDefaultCount = mw.user.options.get( 'NavigationBarShowDefault', | |||
typeof NavigationBarShowDefault !== 'undefined' ? NavigationBarShowDefault : 1 ); | |||
// allow user overrides for b/c | |||
var textHide = typeof NavigationBarHide === 'string' ? NavigationBarHide : mw.msg( 'collapsible-collapse' ); | |||
var textShow = typeof NavigationBarShow === 'string' ? NavigationBarShow : mw.msg( 'collapsible-expand' ); | |||
// shows and hides content and picture (if available) of navigation bars | |||
// Parameters: | |||
// indexNavigationBar: the index of navigation bar to be toggled | |||
function toggleNavigationBar(NavToggle, NavFrame) | |||
{ | |||
if (!NavFrame || !NavToggle) { | |||
return false; | |||
} | |||
// if shown now | |||
if (NavToggle.firstChild.data === textHide) { | |||
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 = textShow; | |||
} | |||
} | |||
// if hidden now | |||
} else if (NavToggle.firstChild.data === textShow) { | |||
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 = textHide; | |||
} | |||
} | |||
} | |||
} | |||
function toggleNavigationBarFunction(NavToggle, NavFrame) { | |||
return function() { | |||
toggleNavigationBar(NavToggle, NavFrame); | |||
return false; | |||
}; | |||
} | |||
// iterate over all NavFrames | |||
var NavFrames = mw.util.$content.find( 'div.NavFrame' ); | |||
// if more Navigation Bars found and not template namespace than Default: hide all | |||
var initiallyToggle = showDefaultCount < NavFrames.length && mw.config.get( 'wgNamespaceNumber' ) !== 10; | |||
for (var i=0; i<NavFrames.length; i++) { | |||
var NavFrame = NavFrames[i]; | |||
var NavToggle = document.createElement("a"); | |||
NavToggle.className = 'NavToggle'; | |||
NavToggle.setAttribute('href', '#'); | |||
var NavToggleText = document.createTextNode(textHide); | |||
NavToggle.appendChild(NavToggleText); | |||
// add NavToggle-Button as first div-element | |||
// in < div class="NavFrame" > | |||
NavFrame.insertBefore(NavToggle, NavFrame.firstChild); | |||
NavToggle.onclick = toggleNavigationBarFunction(NavToggle, NavFrame); | |||
if (initiallyToggle) { | |||
toggleNavigationBar(NavToggle, NavFrame); | |||
} | |||
} | |||
})}); | |||
//================================================================================ | |||
/** | |||
* Fügt eine Betreffzeile auf leeren Artikel-Diskussionsseiten ein | |||
*/ | |||
if( mw.config.get( 'wgNamespaceNumber' ) === 0 || mw.config.get( 'wgNamespaceNumber' ) === 1 ) { | |||
$(function() { | |||
$( '#ca-talk.new a' ).attr( 'href', function( index, attr ) { | |||
return attr + '§ion=new'; | |||
}); | |||
}); | |||
} | |||
/** | |||
* Fügt bei SVG-Grafiken Links zu gerenderten PNGs in verschiedenen Breiten hinzu | |||
*/ | |||
if (mw.config.get( 'wgNamespaceNumber' ) === 6) { | |||
$( function() { | |||
var file = $( '#file' ); // might fail if MediaWiki can't render the SVG | |||
if( file.length && mw.config.get( 'wgIsArticle' ) && mw.config.get( 'wgTitle' ).match( /\.svg$/i ) ) { | |||
var thumbsrc = file.find( 'img' ).attr( 'src' ); | |||
if( !thumbsrc ) { | |||
return; | |||
} | |||
var svgAltSize = function( w, title ) { | |||
var path = thumbsrc.replace( /\/\d+(px-[^\/]+$)/, "/" + w + "$1" ); | |||
var a = $( document.createElement("a") ); | |||
a.attr( 'href', path ); | |||
a.text( title ); | |||
return a; | |||
}; | |||
var p = $( document.createElement("p") ); | |||
p.addClass( "SVGThumbs" ); | |||
p.append( document.createTextNode( "Aus SVG automatisch erzeugte PNG-Grafiken in verschiedenen Auflösungen"+": " ) ); | |||
var l = [ 200, 500, 1000, 2000 ]; | |||
for( var i = 0; i < l.length; i++ ) { | |||
if( i !== 0 ) { | |||
p.append( document.createTextNode( ", " ) ); | |||
} | |||
p.append( svgAltSize( l[i], l[i] + "px" ) ); | |||
} | |||
p.append( document.createTextNode( "." ) ); | |||
$( file.parent() ).find( 'div.fullMedia' ).append( p ); | |||
} | |||
}); | |||
} | |||
/** | |||
* erzeuge einen "Neuen Abschnitt"-Link an der letzten Überschrift | |||
*/ | |||
$( function() { | |||
var newSectionLink = $( '#ca-addsection a' ); | |||
if( newSectionLink.length ) { | |||
var link = newSectionLink.clone(); //create a copy | |||
//avoid duplicate accesskey | |||
link.removeAttr( 'accesskey' ).attr( 'title', function ( index, oldTitle ) { | |||
return oldTitle.replace( /\s*\[.*\]\s*$/, '' ); | |||
} ); | |||
//add it within the brackets | |||
var lastEditsectionLink = $( 'span.mw-editsection:last a:last' ); | |||
lastEditsectionLink.after( link ); | |||
lastEditsectionLink.after( ' | ' ); //see [[MediaWiki:Pipe-separator]] | |||
} | |||
}); | |||
/** | |||
* Entferne [[Vorlage:Anker]] aus der Zusammenfassungszeile, | |||
* damit diese beim generieren der Auto-Zusammenfassung nicht das Linkziel mit beeinflusst | |||
*/ | |||
if ( mw.config.get( 'wgAction' ) === 'edit' ) { | |||
$( function() { | |||
$( '#wpSummary' ).val( function( i, val ) { | |||
//Nur aktiv werden, wenn es auch eine Autozusammenfassung gibt | |||
if( val.length <= 2 || val.substring( 0, 2 ) !== '/*' ) { | |||
return val; | |||
} | |||
return val.replace( /\{\{[\s_]*:?[\s_]*(?:(?:Template|Vorlage)[\s_]*:[\s_]*)?Anker[\s_]*\|[^}]*\}\}\s*/gi, '' ); | |||
}); | |||
}); | |||
} | } | ||