The Demopædia Encyclopedia on Population is under heavy modernization and maintenance. Outputs could look bizarre, sorry for the temporary inconvenience

Čeština - první vydání 1965

MediaWiki:Common.js: Porovnání verzí

Z Demopædia
Přejít na: navigace, hledání
(Zdeněk Pavlík 1965)
 
(Back to minimum)
Řádka 1: Řádka 1:
<!--'''Mediawiki:Common.js'''--->
+
/**
/* Zde uvedený JavaScript bude použit pro všechny uživatele při načtení každé stránky.  */
+
* Keep code in MediaWiki:Common.js to a minimum as it is unconditionally
/* N'importe quel JavaScript ici sera chargé pour n'importe quel utilisateur et pour chaque page accédée.
+
* loaded for all users on every wiki page. If possible create a gadget that is
 
+
* enabled by default instead of adding it here (since gadgets are fully
ATTENTION : Avant de modifier cette page, veuillez tester vos changements avec votre propre
+
* optimized ResourceLoader modules with possibility to add dependencies etc.)
monobook.js. Une erreur sur cette page peut faire bugger le site entier (et gêner l'ensemble des
 
visiteurs), même plusieurs heures après la modification !
 
 
 
NE PAS RETIRER CECI SINON : remplacement des signature, substitution des modèles, ... : <nowiki>
 
 
 
/*************************************************************/
 
/* Fonctions javascript : pallient les limites de javascript */
 
/* Surveiller : http://www.ecmascript.org/                  */
 
/*************************************************************/
 
 
 
/* Test if an element has a certain class **************************************
 
 
  *
 
  *
  * Description: Uses regular expressions and caching for better performance.
+
  * Since Common.js isn't a gadget, there is no place to declare its
  * Maintainers: [[User:Mike Dillon]], [[User:R. Koot]], [[User:SG]]
+
* dependencies, so we have to lazy load them with mw.loader.using on demand and
 +
* then execute the rest in the callback. In most cases these dependencies will
 +
* be loaded (or loading) already and the callback will not be delayed. In case a
 +
  * dependency hasn't arrived yet it'll make sure those are loaded before this.
 
  */
 
  */
 
var hasClass = (function () {
 
    var reCache = {};
 
    return function (element, className) {
 
        return (reCache[className] ? reCache[className] : (reCache[className] = new RegExp("(?:\\s|^)" + className + "(?:\\s|$)"))).test(element.className);
 
    };
 
})();
 
 
 
 
 
/** Collapsible tables *********************************************************
 
* From http://en.wikipedia.org/w/index.php?title=MediaWiki:Common.js&oldid=219789618
 
*  Description: Allows tables to be collapsed, showing only the header. See
 
*              [[Wikipedia:NavFrame]].
 
*  Maintainers: [[User:R. Koot]]
 
*/
 
 
var autoCollapse = 2;
 
// Translations come from rev-delundel of Mediawiki 15
 
// ar */  var collapseCaption = "▲ إخفاء"; // ar
 
// ar */  var expandCaption = "▼ عرض"; // ar
 
  var collapseCaption = "▲ Skrýt překlady"; // cs
 
  var expandCaption = "▼ Zobrazit překlady"; // cs
 
// de */  var collapseCaption = "▲ verstecke"; // de
 
// de */  var expandCaption = "▼ zeige"; // de
 
// en */  var collapseCaption = "▲ hide"; // en
 
// en */  var expandCaption = "▼ show"; // en
 
// es */  var collapseCaption = "▲ occultar"; // es
 
// es */  var expandCaption = "▼ mostrar"; // es
 
// et */  var collapseCaption = "▲ peida"; // et
 
// et */  var expandCaption = "▼ näita"; // et
 
// fi */  var collapseCaption = "▲ piilota"; // fi
 
// fi */  var expandCaption = "▼ näytä"; // fi
 
// fr */  var collapseCaption = "▲ masquer"; // fr
 
// fr */  var expandCaption = "▼ afficher"; // fr
 
// it */  var collapseCaption = "▲ nascondi"; // it
 
// it */  var expandCaption = "▼ mostra"; // it
 
// ja */  var collapseCaption = "▲ 秘匿"; // ja
 
// ja */  var expandCaption = "▼ 表示"; // ja
 
// nl */  var collapseCaption = "▲ verbergen"; // nl
 
// nl */  var expandCaption = "▼ weergeven"; // nl
 
// pl */  var collapseCaption = "▲ ukryj"; // pl
 
// pl */  var expandCaption = "▼ pokaż"; // pl
 
// pt */  var collapseCaption = "▲ esconder"; // pt
 
// pt */  var expandCaption = "▼ mostrar"; // pt
 
// ru */  var collapseCaption = "▲ скрыть"; // ru
 
// ru */  var expandCaption = "▼ показать"; // ru
 
// sh */  var collapseCaption = "▲ skrij"; // sh
 
// sh */  var expandCaption = "▼ pokaži"; // sh
 
// sv */  var collapseCaption = "▲ göm"; // sv
 
// sv */  var expandCaption = "▼ visa"; // sv
 
// zh */  var collapseCaption = "▲ 隱藏"; // zh
 
// zh */  var expandCaption = "▼ 顯示"; // zh
 
// end
 
function collapseTable( tableIndex )
 
{
 
    var Button = document.getElementById( "collapseButton" + tableIndex );
 
    var Table = document.getElementById( "collapsibleTable" + tableIndex );
 
 
    if ( !Table || !Button ) {
 
        return false;
 
    }
 
 
    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;
 
    }
 
}
 
 
function createCollapseButtons()
 
{
 
    var tableIndex = 0;
 
    var NavigationBoxes = new Object();
 
    var Tables = document.getElementsByTagName( "table" );
 
 
    for ( var i = 0; i < Tables.length; i++ ) {
 
        if ( hasClass( Tables[i], "collapsible" ) ) {
 
 
            /* only add button and increment count if there is a header row to work with */
 
            var HeaderRow = Tables[i].getElementsByTagName( "tr" )[0];
 
            if (!HeaderRow) continue;
 
            var Header = HeaderRow.getElementsByTagName( "th" )[0];
 
            if (!Header) continue;
 
 
            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 );
 
 
            Button.style.styleFloat = "right";
 
            Button.style.cssFloat = "right";
 
            Button.style.fontWeight = "normal";
 
            Button.style.textAlign = "right";
 
            Button.style.width = "6em";
 
 
            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 );
 
        }
 
    }
 
}
 
 
addOnloadHook( createCollapseButtons );
 
 
 
/** Dynamic Navigation Bars (experimental) *************************************
 
*
 
*  Description: See [[Wikipedia:NavFrame]].
 
*  Maintainers: UNMAINTAINED
 
*/
 
 
// set up the words in your language
 
var NavigationBarHide = '[' + collapseCaption + ']';
 
var NavigationBarShow = '[' + expandCaption + ']';
 
 
// shows and hides content and picture (if available) of navigation bars
 
// Parameters:
 
//    indexNavigationBar: the index of navigation bar to be toggled
 
function toggleNavigationBar(indexNavigationBar)
 
{
 
    var NavToggle = document.getElementById("NavToggle" + indexNavigationBar);
 
    var NavFrame = document.getElementById("NavFrame" + indexNavigationBar);
 
 
    if (!NavFrame || !NavToggle) {
 
        return false;
 
    }
 
 
    // if shown now
 
    if (NavToggle.firstChild.data == NavigationBarHide) {
 
        for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) {
 
            if ( hasClass( NavChild, 'NavPic' ) ) {
 
                NavChild.style.display = 'none';
 
            }
 
            if ( hasClass( NavChild, 'NavContent') ) {
 
                NavChild.style.display = 'none';
 
            }
 
        }
 
    NavToggle.firstChild.data = NavigationBarShow;
 
 
    // if hidden now
 
    } else if (NavToggle.firstChild.data == NavigationBarShow) {
 
        for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) {
 
            if (hasClass(NavChild, 'NavPic')) {
 
                NavChild.style.display = 'block';
 
            }
 
            if (hasClass(NavChild, 'NavContent')) {
 
                NavChild.style.display = 'block';
 
            }
 
        }
 
        NavToggle.firstChild.data = NavigationBarHide;
 
    }
 
}
 
 
// adds show/hide-button to navigation bars
 
function createNavigationBarToggleButton()
 
{
 
    var indexNavigationBar = 0;
 
    // iterate over all < div >-elements
 
    var divs = document.getElementsByTagName("div");
 
    for (var i = 0; NavFrame = divs[i]; i++) {
 
        // if found a navigation bar
 
        if (hasClass(NavFrame, "NavFrame")) {
 
 
            indexNavigationBar++;
 
            var NavToggle = document.createElement("a");
 
            NavToggle.className = 'NavToggle';
 
            NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar);
 
            NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');');
 
 
            var NavToggleText = document.createTextNode(NavigationBarHide);
 
            for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) {
 
                if ( hasClass( NavChild, 'NavPic' ) || hasClass( NavChild, 'NavContent' ) ) {
 
                    if (NavChild.style.display == 'none') {
 
                        NavToggleText = document.createTextNode(NavigationBarShow);
 
                        break;
 
                    }
 
                }
 
            }
 
 
            NavToggle.appendChild(NavToggleText);
 
            // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked)
 
            for(var j=0; j < NavFrame.childNodes.length; j++) {
 
                if (hasClass(NavFrame.childNodes[j], "NavHead")) {
 
                    NavFrame.childNodes[j].appendChild(NavToggle);
 
                }
 
            }
 
            NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
 
        }
 
    }
 
}
 
 
addOnloadHook( createNavigationBarToggleButton );
 

Verze z 25. 6. 2017, 16:00

/**
 * Keep code in MediaWiki:Common.js to a minimum as it is unconditionally
 * loaded for all users on every wiki page. If possible create a gadget that is
 * enabled by default instead of adding it here (since gadgets are fully
 * optimized ResourceLoader modules with possibility to add dependencies etc.)
 *
 * Since Common.js isn't a gadget, there is no place to declare its
 * dependencies, so we have to lazy load them with mw.loader.using on demand and
 * then execute the rest in the callback. In most cases these dependencies will
 * be loaded (or loading) already and the callback will not be delayed. In case a
 * dependency hasn't arrived yet it'll make sure those are loaded before this.
 */