MediaWiki:Common.js: Unterschied zwischen den Versionen

K
keine Bearbeitungszusammenfassung
KKeine Bearbeitungszusammenfassung
Markierung: Zurückgesetzt
KKeine Bearbeitungszusammenfassung
Markierung: Manuelle Zurücksetzung
 
(39 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
/* Jedes JavaScript hier wird für alle Benutzer für jede Seite geladen. */
//================================================================================
//*** Dynamic Navigation Bars


/**
// set up max count of Navigation Bars on page,
* Sortierung von Umlauten und ß auch ohne [[Vorlage:SortKey]] ermöglichen
// if there are more, all will be hidden
* For jquery.tablesorter.js
// 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
mw.config.set( 'tableSorterCollation', {'Ä':'A', 'Ö':'O', 'Ü':'U', 'ä':'a', 'ö':'o', 'ü':'u', 'ß':'ss'} );


/**
// adds show/hide-button to navigation bars
* load the Edittools on [[Special:Upload]] and prefill the summary textarea
// using 'jquery.makeCollapsible': for messages
* Load pages: [[MediaWiki:Gadget-uploadtools.js]]
// using 'user', 'mediawiki.user', 'user.options': wait for overrides in user.js
*/
mw.loader.using( [ 'jquery.makeCollapsible', 'user', 'mediawiki.user', 'user.options' ], function() { mw.hook( 'wikipage.content' ).add( function( $content ) {
if (mw.config.get( 'wgCanonicalSpecialPageName' ) === 'Upload') {
// allow setting NavigationBarShowDefault
mw.loader.load('ext.gadget.uploadtools');
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
* Nachrichten aus [[MediaWiki:watchlist-summary]] auf der Beobachtungliste ausblenden
// Parameters:
* Load page: [[MediaWiki:Common.js/watchlist.js]]
//     indexNavigationBar: the index of navigation bar to be toggled
*/
function toggleNavigationBar(NavToggle, NavFrame)
if (mw.config.get( 'wgCanonicalSpecialPageName' ) === 'Watchlist') {
{
mw.loader.load('//de.wikipedia.org/w/index.php?title=MediaWiki:Common.js/watchlist.js&action=raw&ctype=text/javascript');
if (!NavFrame || !NavToggle) {
}
return false;
}


/*
// if shown now
## ProjektLinks ##
if (NavToggle.firstChild.data === textHide) {
by Skript von [[user:Merlissimo]] (Idee basierend auf http://de.wiktionary.org/wiki/MediaWiki:Common.js von [[User:Pathoschild]] und [[wikt:de:User:Melancholie]])
for (
erzeugt Sitebar-Interwiki zu Schwesterprojekten aufgrund von Vorlage [[Vorlage:InterProjekt]]
var NavChild = NavFrame.firstChild;
siehe auch Feature-Request [[bugzilla:708]]
NavChild !== null;
*/
NavChild = NavChild.nextSibling
if( mw.config.get( 'wgNamespaceNumber' ) > 0 ) {
) {
  mw.loader.using( [ 'mediawiki.util' ], function() { $( function() {
if (NavChild.className === 'NavPic' || NavChild.className === 'NavContent') {
    var iProject = $( '#interProject' );
NavChild.style.display = 'none';
    if( !iProject.length ) {
}
        return;
}
    }
NavToggle.firstChild.data = textShow;
    var sistersibling = $( '#p-lang' );
    if( !sistersibling.length ) {
        sistersibling = $( '#p-tb' );
    }
    if( !sistersibling.length ) {
        return;
    }
    //Link auf Parennode des Portletmenues
    var sisterparent = sistersibling.parent();


    //Erzeuge neues Portletmenue
// if hidden now
    var sisterprojectnav = $( document.createElement( 'div' ) );
} else if (NavToggle.firstChild.data === textShow) {
    sisterprojectnav.attr( 'id', 'p-sisterprojects' );
for (
    sisterprojectnav.attr( 'class', sistersibling.attr( 'class' ) );
var NavChild = NavFrame.firstChild;
    var header = $( document.createElement( 'h3' ) );
NavChild !== null;
    header.text( $( '#sisterProjects:first' ).text() );
NavChild = NavChild.nextSibling
    sisterprojectnav.append( header );
) {
    var portletDiv = $( document.createElement( 'div' ) );
if (NavChild.className === 'NavPic' || NavChild.className === 'NavContent') {
    var sistersiblingsub = sistersibling.find( 'div:first' );
NavChild.style.display = 'block';
    if( sistersiblingsub.length ) {
}
        portletDiv.attr( 'class', sistersiblingsub.attr( 'class' ) );
}
    } else {
NavToggle.firstChild.data = textHide;
        portletDiv.attr( 'class', 'pBody' );
}
    }
}
    sisterprojectnav.append( portletDiv );


    //Wenn möglich vor den Interwikis einfügen
function toggleNavigationBarFunction(NavToggle, NavFrame) {
    if ( sisterparent.has( '#p-lang' ).length ) {
return function() {
        sisterprojectnav.insertBefore( '#p-lang' );
toggleNavigationBar(NavToggle, NavFrame);
    } else {
return false;
        sisterparent.append( sisterprojectnav );
};
    }
}
// iterate over all NavFrames
var NavFrames = $content.find( 'div.NavFrame' );


    //Schwesterlinks ermitteln und einfügen
// if more Navigation Bars found and not template namespace than Default: hide all
    iProject.find( 'a' ).each( function() {
var initiallyToggle = showDefaultCount < NavFrames.length && mw.config.get( 'wgNamespaceNumber' ) !== 10;
        $this = $( this );
for (var i=0; i<NavFrames.length; i++) {
        var sistername = $this.text();
var NavFrame = NavFrames[i];
        mw.util.addPortletLink(
var NavToggle = document.createElement("a");
            'p-sisterprojects',
NavToggle.className = 'NavToggle';
            $this.attr( 'href' ) + '?uselang=' + mw.util.rawurlencode( mw.config.get( 'wgUserLanguage' ) ),
NavToggle.setAttribute('href', '#');
            sistername,
            'sister-' + sistername,
            sistername
        );
    });
  })});
}


/**
var NavToggleText = document.createTextNode(textHide);
* Fügt einen Link "Alle Sprachen" auf der Hauptseite unter die Sprachverweise hinzu
NavToggle.appendChild(NavToggleText);
*/
if( mw.config.get( 'wgIsMainPage' ) ) {
mw.loader.using( [ 'mediawiki.util' ], function() { $( function () {
  mw.util.addPortletLink(
  'p-lang',
  mw.util.getUrl( 'Wikipedia:Sprachen' ),
  'Alle Sprachen',
  'interwiki-completelist',
  'Liste aller Sprachversionen von Wikipedia'
  );
})});
}


/**
// add NavToggle-Button as first div-element
* force the loading of another JavaScript file
// in < div class="NavFrame" >
* Deprecated function, function alias kept for backward compatibility
NavFrame.insertBefore(NavToggle, NavFrame.firstChild);
* mw.log.deprecate since 08.11.2013
*/
mw.log.deprecate( window, 'includePage', importScript, 'includePage ist veraltet, verwende stattdessen importScript' );


 
NavToggle.onclick = toggleNavigationBarFunction(NavToggle, NavFrame);
 
if (initiallyToggle) {
 
toggleNavigationBar(NavToggle, NavFrame);
 
} else { // make sure that 'display' is always set for every NavFrame
 
for (
 
var NavChild = NavFrame.firstChild;
*/
NavChild !== null;
NavChild = NavChild.nextSibling
) {
if (NavChild.className === 'NavPic' || NavChild.className === 'NavContent') {
NavChild.style.display = 'block';
}
}
}
}
})});