MediaWiki:Common.js: Unterschied zwischen den Versionen
KKeine Bearbeitungszusammenfassung Markierung: Zurückgesetzt |
KKeine Bearbeitungszusammenfassung Markierung: Zurückgesetzt |
||
Zeile 105: | Zeile 105: | ||
mw.log.deprecate( window, 'includePage', importScript, 'includePage ist veraltet, verwende stattdessen importScript' ); | mw.log.deprecate( window, 'includePage', importScript, 'includePage ist veraltet, verwende stattdessen importScript' ); | ||
/** Skript für [[Vorlage:Galerie]] */ | |||
$( function() { | |||
if (document.URL.match(/printable/g)) return; | |||
function toggleImageFunction(group, remindex, shwindex) { | |||
return function() { | |||
document.getElementById("ImageGroupsGr" + group + "Im" + remindex).style["display"] = "none"; | |||
document.getElementById("ImageGroupsGr" + group + "Im" + shwindex).style["display"] = "block"; | |||
return false; | |||
}; | |||
} | |||
var divs = document.getElementsByTagName("div"); | |||
var i = 0, j = 0; | |||
var units, search; | |||
var currentimage; | |||
var UnitNode; | |||
for (i = 0; i < divs.length; i++) { | |||
if (divs[i].className !== "ImageGroup") { continue; } | |||
UnitNode = undefined; | |||
search = divs[i].getElementsByTagName("div"); | |||
for (j = 0; j < search.length; j++) { | |||
if (search[j].className !== "ImageGroupUnits") { continue; } | |||
UnitNode=search[j]; | |||
break; | |||
} | |||
if (UnitNode === undefined) { continue; } | |||
units = []; | |||
for (j = 0 ; j < UnitNode.childNodes.length ; j++ ) { | |||
var temp = UnitNode.childNodes[j]; | |||
if (temp.className === "center") { units.push(temp); } | |||
} | |||
var rightlink = undefined; | |||
var commentText = undefined; | |||
for (j = 0; j < units.length; j++) { | |||
currentimage = units[j]; | |||
currentimage.id = "ImageGroupsGr" + i + "Im" + j; | |||
var leftlink = document.createElement("a"); | |||
if (commentText !== undefined) { | |||
leftlink.setAttribute("title", commentText); | |||
} | |||
var comment; | |||
if (typeof(currentimage.getAttribute("title")) !== "string") { | |||
commentText = (j+1) + "/" + units.length; | |||
comment = document.createElement("tt").appendChild(document.createTextNode("("+ commentText + ")")); | |||
} else { | |||
commentText = currentimage.getAttribute("title"); | |||
comment = document.createElement("span").appendChild(document.createTextNode(commentText)); | |||
currentimage.removeAttribute("title"); | |||
} | |||
if(rightlink !== undefined) { | |||
rightlink.setAttribute("title", commentText); | |||
} | |||
var imghead = document.createElement("div"); | |||
rightlink = document.createElement("a"); | |||
if (j !== 0) { | |||
leftlink.href = "#"; | |||
leftlink.onclick = toggleImageFunction(i, j, j-1); | |||
leftlink.appendChild(document.createTextNode("◀")); | |||
} | |||
if (j !== units.length - 1) { | |||
rightlink.href = "#"; | |||
rightlink.onclick = toggleImageFunction(i, j, j+1); | |||
rightlink.appendChild(document.createTextNode("▶")); | |||
} | |||
imghead.style["fontSize"] = "110%"; | |||
imghead.style["fontweight"] = "bold"; | |||
imghead.appendChild(leftlink); | |||
imghead.appendChild(document.createTextNode("\xA0")); | |||
imghead.appendChild(comment); | |||
imghead.appendChild(document.createTextNode("\xA0")); | |||
imghead.appendChild(rightlink); | |||
if (units.length > 1) { | |||
currentimage.insertBefore(imghead,currentimage.childNodes[0]); | |||
} | |||
if (j !== 0) { | |||
currentimage.style["display"] = "none"; | |||
} | |||
} | |||
} | |||
}); | |||
/** | |||
* 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 ); | |||
} | |||
}); | |||
} | |||