MediaWiki:Common.js: diferenças entre revisões

Origem: Wikiquote, a coletânea de citações livre.
Conteúdo apagado Conteúdo adicionado
mSem resumo de edição
mSem resumo de edição
Linha 9: Linha 9:
}
}


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


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


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


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





Linha 53: Linha 58:
function linkUploadToCommons()
function linkUploadToCommons()
{
{
if (document.getElementById("carrega-para-commons")) return;
if (document.getElementById("carrega-para-commons")) {
return;
}
var li_carrega = document.getElementById("t-upload");
var li_carrega = document.getElementById("t-upload");
if (!li_carrega) return;
if (!li_carrega) {
return;
}
var afegit = li_carrega.nextSibling;
var afegit = li_carrega.nextSibling;
var ul_eines = li_carrega.parentNode;
var ul_eines = li_carrega.parentNode;
var li = document.createElement("li");
var li = document.createElement("li");
var commonsURL = 'http://commons.wikimedia.org/wiki/Special:Upload';
if (mw.config.get('wgServer').indexOf('https://') === 0) {
commonsURL = 'https://secure.wikimedia.org/wikipedia/commons/wiki/Special:Upload';
}
li.id = "carrega-para-commons";
li.id = "carrega-para-commons";
li.innerHTML = '<a href="http://commons.wikimedia.org/wiki/Special:Upload">Carregar no Commons</a>';
li.innerHTML = '<a href="' + commonsURL + '">Carregar no Commons</a>';
if (afegit) ul_eines.insertBefore(li, afegit);
if (afegit) {
ul_eines.insertBefore(li, afegit);
else ul_eines.appendChild(li);
}
else {
ul_eines.appendChild(li);
}
}
}
addLoadEvent(linkUploadToCommons);
$(linkUploadToCommons);




Linha 88: Linha 105:
// END Enable multiple onload functions
// END Enable multiple onload functions
// ============================================================
// ============================================================
// @deprecated: Use a função $() do jQuery
function addLoadEvent(func)
function addLoadEvent(func)
{
{
if (window.addEventListener)
if (window.addEventListener) {
window.addEventListener("load", func, false);
window.addEventListener("load", func, false);
else if (window.attachEvent)
} else if (window.attachEvent) {
window.attachEvent("onload", func);
window.attachEvent("onload", func);
}
}
}
Linha 210: Linha 228:
}
}
addLoadEvent(createNavigationBarToggleButton);
$(createNavigationBarToggleButton);
/* Interwikis */
/* Interwikis */
Linha 241: Linha 259:
}
}
addLoadEvent(interwikiExtra);
$(interwikiExtra);


/** Banners para dicas e doações vista apenas por anônimos **************************
/** Banners para dicas e doações vista apenas por anônimos **************************
Linha 249: Linha 267:
importScript('MediaWiki:WikiBanners.js');
importScript('MediaWiki:WikiBanners.js');


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


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

Revisão das 00h09min de 14 de agosto de 2011

/* 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' )
	&& !$.isEmpty( mw.config.get( 'wgRestrictionEdit' ) )
	&& $.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');
}


/** Correlatos ******************************************************************************
 *  Descrição:Correlatos no menu lateral. Código copiado do de:wikt
 ********************************************************************************************/

mw.util.addCSS( '#interProject, #sisterProjects {display: none; speak: none;} #p-tb .pBody {padding-right: 0;}' );
 function iProject() {
  if (document.getElementById("interProject")) {
   var iProjectElem = document.getElementById("interProject").innerHTML,
       interProject = document.createElement("div");
   interProject.style.marginTop = "0.7em";
   interProject.innerHTML = '<h5>Correlatos<\/h5><div class="pBody">'+iProjectElem+'<\/div>';
   document.getElementById("p-tb").appendChild(interProject);
  }
 }
$(iProject);

/** 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 = 'http://commons.wikimedia.org/wiki/Special:Upload';
    if (mw.config.get('wgServer').indexOf('https://') === 0) {
        commonsURL = 'https://secure.wikimedia.org/wikipedia/commons/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);


// ============================================================
// BEGIN Enable multiple onload functions
 
// setup onload functions this way:
// aOnloadFunctions[aOnloadFunctions.length] = function_name; // without brackets!
 
if (!window.aOnloadFunctions) {
  var aOnloadFunctions = [];
}
 
window.onload = function() {
  if (window.aOnloadFunctions) {
    for (var _i=0; _i<aOnloadFunctions.length; _i++) {
      aOnloadFunctions[_i]();
    }
  }
};
 
// END Enable multiple onload functions
// ============================================================
// @deprecated: Use a função $() do jQuery
function addLoadEvent(func) 
{
  if (window.addEventListener) {
    window.addEventListener("load", func, false);
  } else if (window.attachEvent) {
    window.attachEvent("onload", func);
  }
}
 
/* 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);

/** Banners para dicas e doações vista apenas por anônimos **************************
    *  Descrição: Frases aleatórias que podem ser vistas por anônimos the bug:
    *  Autores: [[:en:User:Gmaxwell]], [[:en:User:MZMcBride]]
  ******************************************************************************/
 importScript('MediaWiki:WikiBanners.js');

/**
 * 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');
	}
});