MediaWiki:Common.js

Origem: Wikiquote, a coletânea de citações livre.
Nota: Após salvar, você terá de limpar a cache do seu navegador para ver as alterações:
  • Internet Explorer: Mantenha pressionada a tecla Ctrl e aperte F5; ou mantenha pressionada a tecla Ctrl e clique no botão "Recarregar" (Reload)
  • Firefox e SeaMonkey: Mantenha pressionada a tecla Shift ⇧ e clique no botão "Recarregar" (Reload ou Atualizar) ou mantenha pressionada a tecla Ctrl e aperte F5; ou mantenha pressionada as teclas Ctrl, e R (Command ⌘, Shift ⌥ e R em Macintosh)
  • Safari e Konqueror: Clique no botão "Recarregar" (Reload)
  • Opera: É necessário limpar manualmente a cache no menu "Ferramentas"→"Preferências"→"Avançadas"→"Histórico" e clicar no botão "Esvaziar Já"
  • Chrome: É necessário limpar manualmente a cache no botão "Ferramentas"→"Limpar dados de navegação", selecione "Esvaziar o cache" e clicar no botão "Limpar dados de navegação"
/* Código Javascript colocado aqui será carregado para todos os utilizadores em cada carregamento de página */

if ($.inArray( mw.config.get( 'wgAction' ), [ "edit" , "submit" ]) > -1) 
{
    var load_edittools = true;
    importScript("MediaWiki:Edittools.js");
    importScript("MediaWiki:Extrabo.js");
    importScript("MediaWiki:Forcepreview.js");
}

else if ( mw.config.get( 'wgCanonicalSpecialPageName' ) == 'Search' ) 
{
    importScript("MediaWiki:Search.js");
}

if (navigator.appName == "Microsoft Internet Explorer")
{
    importScript("MediaWiki:IEFixes.js");
}

if ( mw.config.get( 'wgAction' ) === 'view'
	&& !mw.config.get( 'wgCanonicalSpecialPageName' )
	&& mw.config.get( 'wgRestrictionEdit' ).length
	&& $.inArray( mw.config.get( 'wgRestrictionEdit' )[0], ['autoconfirmed', 'sysop'] ) > -1
	&& mw.config.get( 'wgPageName' ) !== 'Página_principal'
) {
	importScript( 'MediaWiki:Topicon.js' );
}

/*
 * Upload form
 */
if ( mw.config.get( 'wgCanonicalSpecialPageName' ) == 'Upload' ) {
 importScript('MediaWiki:UploadForm.js');
}

/** Commons ******************************************************************************
 *  Descrição:Adiciona um link direto para carregamentos no Commons
 ********************************************************************************************/
 
function linkUploadToCommons()
{
    if (document.getElementById("carrega-para-commons")) {
        return;
    }
    var li_carrega = document.getElementById("t-upload");
    if (!li_carrega) {
        return;
    }
    var afegit = li_carrega.nextSibling;
    var ul_eines = li_carrega.parentNode;
    var li = document.createElement("li");
    var commonsURL = '//commons.wikimedia.org/wiki/Special:Upload';
    li.id = "carrega-para-commons";
    li.innerHTML = '<a href="' + commonsURL + '">Carregar no Commons</a>';
    if (afegit) {
        ul_eines.insertBefore(li, afegit);
    }
    else {
        ul_eines.appendChild(li);
    }
}
 
$(linkUploadToCommons);
 
/* Barras de navegação */
 
 /** Barras de navegação dinâmica ************************************************************
  *    Origem: [[:it:MediaWiki:Common.js]]
  ********************************************************************************************/
 
// set up the words in your language
var NavigationBarHide = ' [ocultar]';
var NavigationBarShow = ' [exibir]';
 
// 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),
		NavFrame = document.getElementById("NavFrame" + indexNavigationBar),
		NavChild;
 
    if (!NavFrame || !NavToggle) {
        return false;
    }
 
    // if shown now
    if (NavToggle.firstChild.data == NavigationBarHide) {
        for (
                NavChild = NavFrame.firstChild;
                NavChild !== null;
                NavChild = NavChild.nextSibling
            ) {
            if (NavChild.className == 'NavPic') {
                NavChild.style.display = 'none';
            }
            if (NavChild.className == 'NavContent') {
                NavChild.style.display = 'none';
            }
        }
    NavToggle.firstChild.data = NavigationBarShow;
 
    // if hidden now
    } else if (NavToggle.firstChild.data == NavigationBarShow) {
        for (
                NavChild = NavFrame.firstChild;
                NavChild !== null;
                NavChild = NavChild.nextSibling
            ) {
            if (NavChild.className == 'NavPic') {
                NavChild.style.display = 'block';
            }
            if (NavChild.className == 'NavContent') {
                NavChild.style.display = 'block';
            }
        }
    NavToggle.firstChild.data = NavigationBarHide;
    }
}
 
// adds show/hide-button to navigation bars
function createNavigationBarToggleButton()
{
    var indexNavigationBar = 0, i;
    // iterate over all < div >-elements
	
    for(
		i=0, NavFrame = document.getElementsByTagName("div")[0];
		NavFrame;
		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);
            // 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 (NavFrame.childNodes[j].className == "NavHead") {
                NavFrame.childNodes[j].appendChild(NavToggle);
              }
            }
            NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
        }
		NavFrame = document.getElementsByTagName("div")[i];
    }
    // if more Navigation Bars found than Default: hide all
    if (NavigationBarShowDefault < indexNavigationBar) {
        for(
                i=1; 
                i<=indexNavigationBar; 
                i++
        ) {
            toggleNavigationBar(i);
        }
    }
 
}
 
$(createNavigationBarToggleButton);
 
/* Interwikis */
 
function interwikiExtra() 
{
   // iterate over all <span>-elements
   for(var i=0, a = document.getElementsByTagName("span")[0]; a; i++) {
      // if found a linkInfo span
      if(a.className == "interwiki-info") {
         // iterate over all <li>-elements
         var count=0;
 
         for(var j=0, b = document.getElementsByTagName("li")[0]; b; j++) {
            if(b.className == "interwiki-" + a.id) {
               b.innerHTML = b.innerHTML + " "+a.title;
               if(a.title == "(vo)") { b.title = "Texto original"; }
            }
			else if(b.className == "interwiki-" + a.id.substr(0,a.id.length-1)) {
               count = count+1;
               if(a.id.charAt(a.id.length-1) == count) {
                  b.innerHTML = b.innerHTML + " "+a.title;
               }
            }
			b = document.getElementsByTagName("li")[j];
         }
      }
	  a = document.getElementsByTagName("span")[i];
   }
}
 
$(interwikiExtra);

/**
 * Altera o título da página
 *
 * A função procura por um banner como:
 * <nowiki><div id="RealTitleBanner">Div que está oculto</nowiki>
 *   <nowiki><span id="RealTitle">título</span></nowiki>
 * <nowiki></div></nowiki>
 * Um elemento com id=DisableRealTitle desabilita a função
 * @source: [[w:en:MediaWiki:Common.js]]
 */
rewritePageH1 = function () {
	try {
		var realTitleBanner = document.getElementById( 'RealTitleBanner' );
		if (realTitleBanner) {
			if ( !document.getElementById( 'DisableRealTitle' ) ) {
				var realTitle = document.getElementById( 'RealTitle' );
				var h1 = document.getElementsByTagName( 'h1' )[0];
				if ( realTitle && h1 ) {
					h1.innerHTML = realTitle.innerHTML;
					realTitleBanner.style.display = 'none';
				}
			}
		}
	} catch (e) {
		mw.log( 'Algo deu errado ao tentar reescrever o título da página.' );
	}
};
$( rewritePageH1 );

/**
 * Transforma páginas comuns em páginas de discussão, para permitir coloração baseada na indentação
 * @source: [[:fr:w:MediaWiki:Common.js]]
 * @author: [[:fr:User:Aoineko]]
 */
$(function() {
	if ( $('#PaginaDeDiscussao').length ) {
		$(document.body).removeClass('ns-subject').addClass('ns-talk');
	}
});