MediaWiki:Common.js: Difference between revisions
Jump to navigation
Jump to search
imported>Hendrik Brummermann No edit summary |
imported>Hendrik Brummermann No edit summary |
(No difference)
| |
Revision as of 14:32, 16 May 2011
//================================================================================
//*** Dynamic Expandable Bars
// set up the words in your language
var ExpandableBarHide = 'Einklappen';
var ExpandableBarShow = 'Ausklappen';
// set up max count of Expandable Bars on page,
// if there are more, all will be hidden
// ExpandableBarShowDefault = 0; // all bars will be hidden
// ExpandableBarShowDefault = 1; // on pages with more than 1 bar all bars will be hidden
// adds show/hide-button to Expandable bars
jQuery( document ).ready(function() {
if(!mw.user.options.exists( 'ExpandableBarShowDefault' )){
if (typeof ExpandableBarShowDefault != 'undefined' ) {
mw.user.options.set( 'ExpandableBarShowDefault',ExpandableBarShowDefault)
}
}
// shows and hides content and picture (if available) of Expandable bars
// Parameters:
// indexExpandableBar: the index of Expandable bar to be toggled
function toggleExpandableBar(ExpandableToggle, ExpandableFrame)
{
if (!ExpandableFrame || !ExpandableToggle) {
return false;
}
// if shown now
if (ExpandableToggle.firstChild.data == ExpandableBarHide) {
for (
var ExpandableChild = ExpandableFrame.firstChild;
ExpandableChild != null;
ExpandableChild = ExpandableChild.nextSibling
) {
if (ExpandableChild.className == 'ExpandablePic') {
ExpandableChild.style.display = 'none';
}
if (ExpandableChild.className == 'ExpandableContent') {
ExpandableChild.style.display = 'none';
}
if (ExpandableChild.className == 'ExpandableToggle') {
ExpandableChild.firstChild.data = ExpandableBarShow;
}
}
// if hidden now
} else if (ExpandableToggle.firstChild.data == ExpandableBarShow) {
for (
var ExpandableChild = ExpandableFrame.firstChild;
ExpandableChild != null;
ExpandableChild = ExpandableChild.nextSibling
) {
if (ExpandableChild.className == 'ExpandablePic') {
ExpandableChild.style.display = 'block';
}
if (ExpandableChild.className == 'ExpandableContent') {
ExpandableChild.style.display = 'block';
}
if (ExpandableChild.className == 'ExpandableToggle') {
ExpandableChild.firstChild.data = ExpandableBarHide;
}
}
}
}
function toggleExpandableBarFunction(ExpandableToggle, ExpandableFrame) {
return function() {
toggleExpandableBar(ExpandableToggle, ExpandableFrame);
return false;
};
}
// iterate over all ExpandableFrames
var ExpandableFrames = mw.util.$content.find( 'div.ExpandableFrame' );
// if more Expandable Bars found and not template namespace than Default: hide all
var initiallyToggle = mw.user.options.get( 'ExpandableBarShowDefault',1 ) < ExpandableFrames.length && mw.config.get( 'wgNamespaceNumber' ) != 10;
for (var i=0; i<ExpandableFrames.length; i++) {
var ExpandableFrame = ExpandableFrames[i];
var ExpandableToggle = document.createElement("a");
ExpandableToggle.className = 'ExpandableToggle';
ExpandableToggle.setAttribute('href', '#');
var ExpandableToggleText = document.createTextNode(ExpandableBarHide);
ExpandableToggle.appendChild(ExpandableToggleText);
// add ExpandableToggle-Button as first div-element
// in < div class="ExpandableFrame" >
ExpandableFrame.insertBefore(ExpandableToggle, ExpandableFrame.firstChild);
ExpandableToggle.onclick = toggleExpandableBarFunction(ExpandableToggle, ExpandableFrame);
if (initiallyToggle) {
toggleExpandableBar(ExpandableToggle, ExpandableFrame);
}
}
});