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

Dictionnaire démographique multilingue (première édition, 1958)

MediaWiki:Common.js : Différence entre versions

De Demopædia
Aller à : navigation, rechercher
(Back to minimum)
Ligne 1 : Ligne 1 :
/* Zde uvedený JavaScript bude použit pro všechny uživatele při načtení každé stránky.  */
+
/**
/* N'importe quel JavaScript ici sera chargé pour n'importe quel utilisateur et pour chaque page accédée.
+
* 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
ATTENTION : Avant de modifier cette page, veuillez tester vos changements avec votre propre
+
* enabled by default instead of adding it here (since gadgets are fully
monobook.js. Une erreur sur cette page peut faire bugger le site entier (et gêner l'ensemble des
+
* optimized ResourceLoader modules with possibility to add dependencies etc.)
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
 
// cs */  var collapseCaption = "▲ Skrýt překlady"; // cs
 
// 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
 
  var collapseCaption = "▲ masquer"; // 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 );
 

Version du 25 juin 2017 à 17: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.
 */