So sah der Internetauftritt der Jedi-Bibliothek im Oktober 2011 aus. Fühlt euch frei, darin zu stöbern! Unsere aktuelle Hauptseite findet ihr unter jedi-bibliothek.de!

MediaWiki:Common.js

Aus Jedi-Bibliothek
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
 
(Eine dazwischenliegende Version von einem Benutzer wird nicht angezeigt)
Zeile 17: Zeile 17:
 
addOnloadHook(replaceusername);
 
addOnloadHook(replaceusername);
  
−
/** Collapsible tables *********************************************************
+
// makeCollapsible
−
*
+
importStylesheet('MediaWiki:JQuery-makeCollapsible.css');
−
*  Description: Allows tables to be collapsed, showing only the header. See
+
importScript('MediaWiki:JQuery-makeCollapsible.js');
−
*                        http://www.mediawiki.org/wiki/Manual:Collapsible_tables.
+
 
−
*  Maintainers: [[en:User:R. Koot]]
+
function getElementsByClass(searchClass,node,tag) {
−
*/
+
    var classElements = new Array();
−
+
    if ( node == null )
−
var autoCollapse = 2;
+
         node = document;
−
var collapseCaption = 'hide';
+
    if ( tag == null )
−
var expandCaption = 'show';
+
        tag = '*';
−
+
    var els = node.getElementsByTagName(tag);
−
function collapseTable( tableIndex ) {
+
    var elsLen = els.length;
−
        var Button = document.getElementById( 'collapseButton' + tableIndex );
+
    var pattern = new RegExp('(^|\\\\s)'+searchClass+'(\\\\s|$)');
−
         var Table = document.getElementById( 'collapsibleTable' + tableIndex );
+
    for (i = 0, j = 0; i < elsLen; i++) {
−
+
        if ( pattern.test(els[i].className) ) {
−
        if ( !Table || !Button ) {
+
            classElements[j] = els[i];
−
                return false;
+
            j++;
−
        }
+
−
+
−
        var Rows = Table.rows;
+
−
+
−
        if ( Button.firstChild.data == collapseCaption ) {
+
−
                for ( var i = 1; i < Rows.length; i++ ) {
+
−
                        Rows[i].style.display = 'none';
+
−
                }
+
−
                Button.firstChild.data = expandCaption;
+
−
        } else {
+
−
                for ( var i = 1; i < Rows.length; i++ ) {
+
−
                        Rows[i].style.display = Rows[0].style.display;
+
−
                }
+
−
                Button.firstChild.data = collapseCaption;
+
 
         }
 
         }
 +
    }
 +
    return classElements;
 
}
 
}
−
+
 
−
function createCollapseButtons() {
+
function setRowNumber()
−
        var tableIndex = 0;
+
{
−
        var NavigationBoxes = new Object();
+
 
−
        var Tables = document.getElementsByTagName( 'table' );
+
  var skipRows;   // don't number header rows
−
+
  var tableName = getElementsByClass('numberedTable');
−
        for ( var i = 0; i < Tables.length; i++ ) {
+
  for each (i in tableName) {
−
                if ( hasClass( Tables[i], 'collapsible' ) ) {
+
    skipRows = 0;
−
+
    var row = i.rows[0];
−
                        /* only add button and increment count if there is a header row to work with */
+
    var cell = row.insertCell(0);
−
                        var HeaderRow = Tables[i].getElementsByTagName( 'tr' )[0];
+
    cell.innerHTML = '';
−
                        if ( !HeaderRow ) {
+
    cell.innerText = '';
−
                                continue;
+
    for (rowNbr = skipRows+1; rowNbr < i.rows.length; rowNbr++) {
−
                        }
+
        var cell = i.rows[rowNbr];
−
                        var Header = HeaderRow.getElementsByTagName( 'th' )[0];
+
        var cell = cell.insertCell(0);
−
                        if ( !Header ) {
+
        var cell = i.rows[rowNbr].cells[0];
−
                                continue;
+
        var rowNbrText = (rowNbr - skipRows) + ")";
−
                        }
+
        cell.innerHTML = rowNbrText;
−
+
        cell.innerText = rowNbrText;
−
                        NavigationBoxes[tableIndex] = Tables[i];
+
    }
−
                        Tables[i].setAttribute( 'id', 'collapsibleTable' + tableIndex );
+
  }
−
+
 
−
                        var Button = document.createElement( 'span' );
+
}
−
                        var ButtonLink = document.createElement( 'a' );
+
 
−
                        var ButtonText = document.createTextNode( collapseCaption );
+
function runOnLoad() {
−
+
  setRowNumber();
−
                        Button.className = 'collapseButton'; // Styles are declared in [[MediaWiki:Common.css]]
+
−
+
−
                        ButtonLink.style.color = Header.style.color;
+
−
                        ButtonLink.setAttribute( 'id', 'collapseButton' + tableIndex );
+
−
                        ButtonLink.setAttribute( 'href', "javascript:collapseTable(" + tableIndex + ");" );
+
−
                        ButtonLink.appendChild( ButtonText );
+
−
+
−
                        Button.appendChild( document.createTextNode( '[' ) );
+
−
                        Button.appendChild( ButtonLink );
+
−
                        Button.appendChild( document.createTextNode( ']' ) );
+
−
+
−
                        Header.insertBefore( Button, Header.childNodes[0] );
+
−
                        tableIndex++;
+
−
                }
+
−
        }
+
−
+
−
        for ( var i = 0;  i < tableIndex; i++ ) {
+
−
                if ( hasClass( NavigationBoxes[i], 'collapsed' ) || ( tableIndex >= autoCollapse && hasClass( NavigationBoxes[i], 'autocollapse' ) ) ) {
+
−
                        collapseTable( i );
+
−
                } else if ( hasClass( NavigationBoxes[i], 'innercollapse' ) ) {
+
−
                        var element = NavigationBoxes[i];
+
−
                        while ( element = element.parentNode ) {
+
−
                                if ( hasClass( element, 'outercollapse' ) ) {
+
−
                                        collapseTable( i );
+
−
                                        break;
+
−
                                }
+
−
                        }
+
−
                }
+
−
        }
+
 
}
 
}
−
 
−
addOnloadHook( createCollapseButtons );
 
−
 
−
/** Test if an element has a certain class **************************************
 
−
*
 
−
* Description: Uses regular expressions and caching for better performance.
 
−
* Maintainers: [[User:Mike Dillon]], [[User:R. Koot]], [[User:SG]]
 
−
*/
 
−
 
−
var hasClass = ( function() {
 
−
        var reCache = {};
 
−
        return function( element, className ) {
 
−
                return ( reCache[className] ? reCache[className] : ( reCache[className] = new RegExp( "(?:\\s|^)" + className + "(?:\\s|$)" ) ) ).test( element.className );
 
−
        };
 
−
})();
 

Aktuelle Version vom 18. August 2011, 08:09 Uhr

/* Das folgende JavaScript wird für alle Benutzer geladen. */
ts_alternate_row_colors = true;

//Ersetzt <span class="insertusername"></span> mit dem Benutzername des Lesers
function replaceusername() {
  var spantags = document.getElementsByTagName("span");
  for (i=0; i<spantags.length; i++) {
    if (spantags[i].className=="insertusername") {
      if (wgUserName==null) {
        spantags[i].innerHTML="Padawan";
      } else {
        spantags[i].innerHTML=wgUserName;
      }
    }
  }
}
addOnloadHook(replaceusername);

// makeCollapsible
importStylesheet('MediaWiki:JQuery-makeCollapsible.css');
importScript('MediaWiki:JQuery-makeCollapsible.js');

function getElementsByClass(searchClass,node,tag) {
    var classElements = new Array();
    if ( node == null )
        node = document;
    if ( tag == null )
        tag = '*';
    var els = node.getElementsByTagName(tag);
    var elsLen = els.length;
    var pattern = new RegExp('(^|\\\\s)'+searchClass+'(\\\\s|$)');
    for (i = 0, j = 0; i < elsLen; i++) {
        if ( pattern.test(els[i].className) ) {
            classElements[j] = els[i];
            j++;
        }
    }
    return classElements;
}

function setRowNumber()
{
  
  var skipRows;    // don't number header rows
  var tableName = getElementsByClass('numberedTable');
  for each (i in tableName) {
     skipRows = 0;
     var row = i.rows[0];
     var cell = row.insertCell(0);
     cell.innerHTML = '';
     cell.innerText = '';
     for (rowNbr = skipRows+1; rowNbr < i.rows.length; rowNbr++) {
        var cell = i.rows[rowNbr];
        var cell = cell.insertCell(0);
        var cell = i.rows[rowNbr].cells[0];
        var rowNbrText = (rowNbr - skipRows) + ")";
        cell.innerHTML = rowNbrText;
        cell.innerText = rowNbrText;
     }
  }

}

function runOnLoad() {
   setRowNumber();
}
Meine Werkzeuge
Varianten
Aktionen
Navigation
Werkzeuge
Netzwerke & Feeds