MediaWiki:Common.js

Origem: Desciclopédia, a enciclopédia livre de conteúdo.
Ir para navegação Ir para pesquisar

Nota: Após salvar, você pode ter que limpar o "cache" do seu navegador para ver as alterações.

/**
 * Resolvendo a compatibilidade com o antigo MediaWiki
 * segundo o carlb, algumas variáveis mudaram com a atualização.
 * sendo assim, teriamos que recriar elas para o estado original:
 */
var wgUserGroups = mw.config.get("wgUserGroups");
var wgAction = mw.config.get("wgAction");
var wgPageName = mw.config.get("wgPageName");
var wgUserName = mw.config.get("wgUserName");
var wgCanonicalNamespace = mw.config.get("wgCanonicalNamespace");
var wgArticleId = mw.config.get("wgArticleId");
var wgNamespaceNumber = mw.config.get("wgNamespaceNumber");
var wgCurRevisionId = mw.config.get("wgCurRevisionId");

/* Collapsible tables ********************
 *
 *  Description: Allows tables to be collapsed, showing only the header. See
 *               [[Wikipedia:NavFrame]].
 */

var hasClass = (function () {
    var reCache = {};
    return function (element, className) {
        return (reCache[className] ? reCache[className] : (reCache[className] = new RegExp("(?:\\s|^)"   className   "(?:\\s|$)"))).test(element.className);
    };
})();
 
var autoCollapse = 2;
var collapseCaption = "Ocultar";
var expandCaption = "Mostrar";
 
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";      // REMOVE THESE LINES
            Button.style.fontWeight = "normal";   // ON 10 FEBRUARY 2009
            Button.style.textAlign = "right";     //
            Button.style.width = "6em";           //
 
            Button.className = "collapseButton";  //Styles are declared in 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;
                }
            }
        }
    }
}
// End of collapsible tables code
$( createCollapseButtons );

var NavigationBarHide = 'Esconder';
var NavigationBarShow = 'Mostrar';
 
// set up max count of Navigation Bars on page,
// if there are more, all will be hidden
// NavigationBarShowDefault = 0; // all bars will be hidden
// NavigationBarShowDefault = 1; // on pages with more than 1 bar all bars will be hidden
var NavigationBarShowDefault = 0;
 
 
// 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 (NavChild.className == 'NavPic') {
                NavChild.style.display = 'none';
            }
            if (NavChild.className == 'NavContent') {
                NavChild.style.display = 'none';
            }
            if (NavChild.className == 'NavToggle') {
                NavChild.firstChild.data = NavigationBarShow;
            }
        }
 
    // if hidden now
    } else if (NavToggle.firstChild.data == NavigationBarShow) {
        for (
                var NavChild = NavFrame.firstChild;
                NavChild != null;
                NavChild = NavChild.nextSibling
            ) {
            if (NavChild.className == 'NavPic') {
                NavChild.style.display = 'block';
            }
            if (NavChild.className == 'NavContent') {
                NavChild.style.display = 'block';
            }
            if (NavChild.className == 'NavToggle') {
                NavChild.firstChild.data = NavigationBarHide;
            }
        }
    }
}

// adds show/hide-button to navigation bars
function createNavigationBarToggleButton()
{
    var indexNavigationBar = 0;
    // iterate over all <div>-elements
    for(
            var i=0;
            NavFrame = document.getElementsByTagName("div")[i];
            i  
        ) {
        // if found a navigation bar
        if (NavFrame.className == "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);
            NavToggle.appendChild(NavToggleText);
 
            // add NavToggle-Button as first div-element
            // in <div class="NavFrame">
            NavFrame.insertBefore(
                NavToggle,
                NavFrame.firstChild
            );
            NavFrame.setAttribute('id', 'NavFrame'   indexNavigationBar);
        }
    }
    // if more Navigation Bars found than Default: hide all
    if (NavigationBarShowDefault < indexNavigationBar) {
        for(
                var i=1;
                i<=indexNavigationBar;
                i  
        ) {
            toggleNavigationBar(i);
        }
    }
 
}
 
//aOnloadFunctions[aOnloadFunctions.length] = createNavigationBarToggleButton;
$(createNavigationBarToggleButton)
 
// END Dynamic Navigation Bars

/* TaBeLaOCulta **********************************************************************
   *      Author: User:Jozebaiano da Desciclopédia
   *     License: CC 2.5, como tudo por aqui...
   *         Use: Ainda tem testes..
   * Description: Tabela dinâmica para uso em predefinições com o proposito semelhante a
   *              predefinição existente na Nonciclopedia.
   *              A princípio, deverá funcionar da mesma forma que a original
   *              Disp. em: https://nonciclopedia.wikia.com/wiki/Template:Calcio/Contenuto
   *************************************************************************************/
 
  function tabelaOc() {
    // Se houver alguma tabela desse tipo na página, então esse malware abaixo será executado:
    if($(".tbloc-table").length > 0) {
     
      $(".tbloc-table").each(function(i) {
 
        var itemAtv = 0;
        $('.tbloc-table:eq('   i   ') *[class^="tbloc-link-"]').each(function(idx, el) {
         
            el.addEventListener('click', function() {
 
            if($('.tbloc-table:eq('   i   ') *[class="tbloc-conteudo-'   itemAtv   '"]').is(':visible')) {
              $('.tbloc-table:eq('   i   ') *[class="tbloc-conteudo-'   itemAtv   '"]').hide();
            }
 
            if(itemAtv === 0 || itemAtv !== (idx   1)) {
              $('.tbloc-table:eq('   i   ') *[class="tbloc-conteudo-'   (idx   1)   '"]').show("fast");
              $('.tbloc-table:eq('   i   ') .tbloc-ajuda').hide(100);
              itemAtv = (idx   1);
            }
            else { /* Se quiser desabilitar o fechamento da predefinição, basta remover esse bloco 'else' */
              $('.tbloc-table:eq('   i   ') *[class="tbloc-conteudo-'   (idx   1)   '"]').hide("fast");
              $('.tbloc-table:eq('   i   ') .tbloc-ajuda').show("slow");
              itemAtv = 0;
            }
 
          }, false); // END addEvendListener
 
        }); /* END each .tbloc-table:eq(?) links */
      });  /* END each .tbloc-table na pagina */
    }     /* END if houver .tbloc-table na página */
  }
 
$(tabelaOc);

if (wgAction=='edit' && document.URL.indexOf('&section=0') != -1)
addOnloadHook(function(){
  document.getElementById('wpSummary').value = '(Intro) '
})

// {{USERNAME}} [[ja:MediaWiki:Gadget-UsernameReplace.js]] (versão de 02:07 03/12/2018 UTC)
/* Uso: <span class="insertusername"></span>
 * Nota: Quando {{USERNAME}} é inserido, a classe "insertusername" é removida, e depois a classe "un-username" é adicionada.
*/
jQuery( document ).ready( function( $ ){
   var user = mw.config.get('wgUserName');
   if(window.disableUsernameReplace || user === null) return;
   $("span.insertusername").html(user).removeClass("insertusername").addClass("un-username");
});