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

Fonte: Wikinotícias
Conteúdo apagado Conteúdo adicionado
Alchimista (discussão | contribs)
Sem resumo de edição
Alchimista (discussão | contribs)
+ alteração, a pedido de User:Helder.wiki em https://pt.wikipedia.org/w/index.php?diff=38147232&oldid=38133530
Linha 1: Linha 1:
/* Código Javascript colocado aqui será carregado para todos os utilizadores em cada carregamento de página */
/* Código Javascript colocado aqui será carregado para todos os utilizadores em cada carregamento de página */
/*global $, jQuery, mw, importScript */
if ( $.inArray( mw.config.get( 'wgAction' ), ['edit' , 'submit'] ) !== -1 ) {
if ( $.inArray( mw.config.get( 'wgAction' ), ['edit' , 'submit'] ) !== -1 ) {
var load_edittools = true;
window.load_edittools = true;
importScript( 'MediaWiki:Edittools.js' );
importScript( 'MediaWiki:Edittools.js' );
importScript( 'MediaWiki:Extrabo.js' );
importScript( 'MediaWiki:Extrabo.js' );
Linha 13: Linha 14:
}
}


/**
/** Correlatos
* Adiciona links para os projetos correlatos no menu lateral, a partir da [[Predefinição:Correlatos]].
* Correlatos
* TODO: Remover quando o [[bugzilla:708]] for resolvido
*
* @author: [[:de:wikt:User:Melancholie]]
* Correlatos no menu lateral. Código copiado do de:wikt
* @source: [[:de:wikt:MediaWiki:Common.js/Archiv 2008-04-28]] ([[de:wikt:Special:PermaLink/217901]])
*/
*/
mw.util.addCSS( '#interProject, #sisterProjects {display: none; speak: none;} #p-tb .pBody {padding-right: 0;}' );
mw.util.addCSS( '#interProject, #sisterProjects {display: none; speak: none;} #p-tb .pBody {padding-right: 0;}' );
function iProject() {
function iProject() {
var iProjectHtml, interProject;
if ( document.getElementById( 'interProject' ) ) {
if ( document.getElementById( 'interProject' ) ) {
var iProject = document.getElementById( 'interProject' ).innerHTML;
iProjectHtml = document.getElementById( 'interProject' ).innerHTML;
var interProject = document.createElement( 'div' );
interProject = document.createElement( 'div' );
interProject.style.marginTop = '0.7em';
interProject.style.marginTop = '0.7em';
interProject.innerHTML = '<h5>Correlatos<\/h5><div class="pBody">'+iProject+'<\/div>';
interProject.innerHTML = '<h5>Correlatos<\/h5><div class="pBody">'+iProjectHtml+'<\/div>';
document.getElementById( 'p-tb' ).appendChild( interProject );
document.getElementById( 'p-tb' ).appendChild( interProject );
}
}
}
}
$( iProject );
$( iProject );


Linha 66: Linha 69:


if ( !window.aOnloadFunctions ) {
if ( !window.aOnloadFunctions ) {
var aOnloadFunctions = [];
mw.log.deprecate( window, 'aOnloadFunctions', [], 'Use jQuery em vez disso' );
}
}


window.onload = function() {
mw.log.deprecate( window, 'onload', function() {
if ( window.aOnloadFunctions ) {
if ( window.aOnloadFunctions ) {
for ( var _i=0; _i<aOnloadFunctions.length; _i++ ) {
for ( var _i=0; _i<window.aOnloadFunctions.length; _i++ ) {
aOnloadFunctions[_i]();
window.aOnloadFunctions[_i]();
}
}
}
}
}, 'Use jQuery em vez disso' );
}


// END Enable multiple onload functions
// END Enable multiple onload functions
// ============================================================
// ============================================================


function addLoadEvent( func ) {
mw.log.deprecate( window, 'addLoadEvent', function ( func ) {
if ( window.addEventListener ) {
if ( window.addEventListener ) {
window.addEventListener( 'load', func, false );
window.addEventListener( 'load', func, false );
Linha 86: Linha 89:
window.attachEvent( 'onload', func );
window.attachEvent( 'onload', func );
}
}
}, 'Use jQuery em vez disso' );
}

/* Barras de navegação */


/**
/**
* Dynamic Navigation Bars (experimental)
* Barras de navegação dinâmica
*
*
* Description: See [[Wikipedia:NavFrame]].
* Origem: [[:it:MediaWiki:Common.js]]
* Maintainers: UNMAINTAINED
* @source: [[w:en:MediaWiki:Common.js]]
*/
*/


// set up the words in your language
/* set up the words in your language */
var NavigationBarHide = ' [ocultar]';
var NavigationBarHide = '[ocultar]';
var NavigationBarShow = ' [exibir]';
var NavigationBarShow = '[exibir]';


/**
// set up max count of Navigation Bars on page,
* Shows and hides content and picture (if available) of navigation bars
// if there are more, all will be hidden
* Parameters:
// NavigationBarShowDefault = 0; // all bars will be hidden
* indexNavigationBar: the index of navigation bar to be toggled
// NavigationBarShowDefault = 1; // on pages with more than 1 bar all bars will be hidden
**/
var NavigationBarShowDefault = 0;
window.toggleNavigationBar = function ( indexNavigationBar, event ) {

// 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 NavToggle = document.getElementById( 'NavToggle' + indexNavigationBar );
var NavFrame = document.getElementById( 'NavFrame' + indexNavigationBar );
var NavFrame = document.getElementById( 'NavFrame' + indexNavigationBar );
var NavChild;


if ( !NavFrame || !NavToggle ) {
if ( !NavFrame || !NavToggle ) {
Linha 117: Linha 117:
}
}


// if shown now
/* if shown now */
if ( NavToggle.firstChild.data == NavigationBarHide ) {
if ( NavToggle.firstChild.data === NavigationBarHide ) {
for ( NavChild = NavFrame.firstChild; NavChild !== null; NavChild = NavChild.nextSibling ) {
for (
if ( $( NavChild ).hasClass( 'NavContent' ) || $( NavChild ).hasClass( 'NavPic' ) ) {
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';
NavChild.style.display = 'none';
}
}
Linha 133: Linha 126:
NavToggle.firstChild.data = NavigationBarShow;
NavToggle.firstChild.data = NavigationBarShow;


// if hidden now
/* if hidden now */
} else if ( NavToggle.firstChild.data == NavigationBarShow ) {
} else if ( NavToggle.firstChild.data === NavigationBarShow ) {
for ( NavChild = NavFrame.firstChild; NavChild !== null; NavChild = NavChild.nextSibling ) {
for (
if ( $( NavChild ).hasClass( 'NavContent' ) || $( NavChild ).hasClass( 'NavPic' ) ) {
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';
NavChild.style.display = 'block';
}
}
Linha 149: Linha 135:
NavToggle.firstChild.data = NavigationBarHide;
NavToggle.firstChild.data = NavigationBarHide;
}
}
}


event.preventDefault();
// adds show/hide-button to navigation bars
};

/* adds show/hide-button to navigation bars */
function createNavigationBarToggleButton() {
function createNavigationBarToggleButton() {
var indexNavigationBar = 0;
var indexNavigationBar = 0;
var NavFrame;
// iterate over all < div >-elements
/* iterate over all < div >-elements */
for(
var divs = document.getElementsByTagName( 'div' );
var i=0;
for( var i = 0; (NavFrame = divs[i]); i++ ) {
NavFrame = document.getElementsByTagName( 'div' )[i];
/* if found a navigation bar */
i++
if ( $( NavFrame ).hasClass( 'NavFrame' ) ) {
) {
// if found a navigation bar
if ( NavFrame.className == 'NavFrame' ) {


indexNavigationBar++;
indexNavigationBar++;
Linha 167: Linha 153:
NavToggle.className = 'NavToggle';
NavToggle.className = 'NavToggle';
NavToggle.setAttribute( 'id', 'NavToggle' + indexNavigationBar );
NavToggle.setAttribute( 'id', 'NavToggle' + indexNavigationBar );
NavToggle.setAttribute( 'href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');' );
NavToggle.setAttribute( 'href', '#' );
$( NavToggle ).on( 'click', $.proxy( window.toggleNavigationBar, window, indexNavigationBar ) );


var NavToggleText = document.createTextNode( NavigationBarHide );
var NavToggleText = document.createTextNode( NavigationBarHide );
NavToggle.appendChild( NavToggleText );
NavToggle.appendChild( NavToggleText );
// Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked)
/* 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++ ) {
for(
if ( $( NavFrame.childNodes[j] ).hasClass( 'NavHead' ) ) {
var j=0;
j < NavFrame.childNodes.length;
NavToggle.style.color = NavFrame.childNodes[j].style.color;
j++
) {
if ( NavFrame.childNodes[j].className == 'NavHead' ) {
NavFrame.childNodes[j].appendChild( NavToggle );
NavFrame.childNodes[j].appendChild( NavToggle );
}
}
Linha 184: Linha 168:
}
}
}
}
// if more Navigation Bars found than Default: hide all
if ( NavigationBarShowDefault < indexNavigationBar ) {
for(
var i=1;
i<=indexNavigationBar;
i++
) {
toggleNavigationBar( i );
}
}

}
}


$( createNavigationBarToggleButton );
mw.hook( 'wikipage.content' ).add( createNavigationBarToggleButton );


// Language selector
// Language selector
Linha 205: Linha 178:
importScript( 'MediaWiki:Ticker.js' );
importScript( 'MediaWiki:Ticker.js' );
importScript( 'MediaWiki:PageCSS.js' );
importScript( 'MediaWiki:PageCSS.js' );

if ( mw.config.get( 'wgPageName' ) == 'Portal:Futebol' ) {
NavigationBarShowDefault = 50;
}


/**
/**
Linha 225: Linha 194:
$( TransformeEmPaginaDeDiscussao );
$( TransformeEmPaginaDeDiscussao );


/**
/** Altera o título da página
* Altera o título da página
*
*
* A função procura por um banner como:
* A função procura por um banner como:
** <div id="RealTitleBanner">Div que está oculta
* Origem: [[:w:en:MediaWiki:Common.js]]
* <nowiki><div id="RealTitleBanner">Div that is hidden</nowiki>
** <span id="RealTitle">Novo título</span>
** </div>
* <nowiki><span id="RealTitle">title</span></nowiki>
* Um elemento com id=DisableRealTitle desabilita a função
* <nowiki></div></nowiki>
* @source: [[w:MediaWiki:Gadget-TitleRewrite.js]] ([[w:Special:PermaLink/33988491]])
* An element with id=DisableRealTitle disables the function.
* @source: [[:en:MediaWiki:Common.js]] ([[en:Special:PermaLink/95609539]]) / [[:en:User:Interiot/js/RealTitle.js]]
* @see: [[:en:MediaWiki talk:Common.js/Archive 2#Initial letter is shown capitalized due to technical restrictions]]
* @see: [[:en:Wikipedia:Village pump (technical)/Archive AC#Name technical restrictions workaround]]
* @author: [[:en:User:Interiot]]
* @author: [[User:!Silent]]
*/
*/
( function( $ ) {
'use strict';


function rewritePageTitle() {
rewritePageH1 = function() {
var $realTitle,
try {
var realTitleBanner = document.getElementById( 'RealTitleBanner' );
$realTitleBanner = $( '#RealTitleBanner' );

if ( realTitleBanner ) {
if ( !document.getElementById( 'DisableRealTitle' ) ) {
if ( $realTitleBanner.length !== 0 && !$( '#DisableRealTitle' ).length ) {
var realTitle = document.getElementById( 'RealTitle' );
$realTitle = $( '#RealTitle' );

var h1 = document.getElementsByTagName( 'h1' )[0];
if ( realTitle && h1 ) {
if ( $realTitle.length ) {
h1.innerHTML = realTitle.innerHTML;
$( 'h1:first' ).html( $realTitle.html() );
realTitleBanner.style.display = 'none';
$realTitleBanner.hide();
}
}
}
}
}
catch ( e ) {
/* Algo deu errado. */
}
}
}
}

$( rewritePageH1 );
$( rewritePageTitle );

}( jQuery ) );

Revisão das 13h18min de 15 de fevereiro de 2014

/* Código Javascript colocado aqui será carregado para todos os utilizadores em cada carregamento de página */
/*global $, jQuery, mw, importScript */
if ( $.inArray( mw.config.get( 'wgAction' ), ['edit' , 'submit'] ) !== -1 ) {
	window.load_edittools = true;
	importScript( 'MediaWiki:Edittools.js' );
	importScript( 'MediaWiki:Extrabo.js' );
	importScript( 'MediaWiki:Forcepreview.js' );
} else if ( mw.config.get( 'wgPageName' ) == 'Especial:Busca' ) {
	importScript( 'MediaWiki:Search.js' );
} else if ( navigator.appName == 'Microsoft Internet Explorer' ) {
	importScript( 'MediaWiki:IEFixes.js' );
} else if ( $.inArray( mw.config.get( 'wgRestrictionEdit' ), [ 'autoconfirmed' , 'sysop' ] ) !== -1 ) {
	importScript( 'MediaWiki:Topicon.js' );
}

/** Correlatos
 * Adiciona links para os projetos correlatos no menu lateral, a partir da [[Predefinição:Correlatos]].
 * TODO: Remover quando o [[bugzilla:708]] for resolvido
 * @author: [[:de:wikt:User:Melancholie]]
 * @source: [[:de:wikt:MediaWiki:Common.js/Archiv 2008-04-28]] ([[de:wikt:Special:PermaLink/217901]])
 */
mw.util.addCSS( '#interProject, #sisterProjects {display: none; speak: none;} #p-tb .pBody {padding-right: 0;}' );
function iProject() {
  var iProjectHtml, interProject;
	if ( document.getElementById( 'interProject' ) ) {
		iProjectHtml = document.getElementById( 'interProject' ).innerHTML;
		interProject = document.createElement( 'div' );
		interProject.style.marginTop = '0.7em';
		interProject.innerHTML = '<h5>Correlatos<\/h5><div class="pBody">'+iProjectHtml+'<\/div>';
		document.getElementById( 'p-tb' ).appendChild( interProject );
		}
	}
$( iProject );

/**
 * Commons
 *
 * 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' );
	li.id = 'carrega-para-commons';
	li.innerHTML = '<a href="//commons.wikimedia.org/wiki/Commons:Upload/pt">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 ) {
	mw.log.deprecate( window, 'aOnloadFunctions', [], 'Use jQuery em vez disso' );
}

mw.log.deprecate( window, 'onload', function() {
	if ( window.aOnloadFunctions ) {
		for ( var _i=0; _i<window.aOnloadFunctions.length; _i++ ) {
			window.aOnloadFunctions[_i]();
		}
	}
}, 'Use jQuery em vez disso' );

// END Enable multiple onload functions
// ============================================================

mw.log.deprecate( window, 'addLoadEvent', function ( func ) {
	if ( window.addEventListener ) {
		window.addEventListener( 'load', func, false );
	} else if ( window.attachEvent ) {
		window.attachEvent( 'onload', func );
	}
}, 'Use jQuery em vez disso' );

/**
 * Dynamic Navigation Bars (experimental)
 *
 * Description: See [[Wikipedia:NavFrame]].
 * Maintainers: UNMAINTAINED
 * @source: [[w:en:MediaWiki:Common.js]]
 */

/* set up the words in your language */
var NavigationBarHide = '[ocultar]';
var NavigationBarShow = '[exibir]';

/**
 * Shows and hides content and picture (if available) of navigation bars
 * Parameters:
 *     indexNavigationBar: the index of navigation bar to be toggled
 **/
window.toggleNavigationBar = function ( indexNavigationBar, event ) {
	var NavToggle = document.getElementById( 'NavToggle' + indexNavigationBar );
	var NavFrame = document.getElementById( 'NavFrame' + indexNavigationBar );
	var 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 ).hasClass( 'NavContent' ) || $( NavChild ).hasClass( 'NavPic' ) ) {
				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 ).hasClass( 'NavContent' ) || $( NavChild ).hasClass( 'NavPic' ) ) {
				NavChild.style.display = 'block';
			}
		}
		NavToggle.firstChild.data = NavigationBarHide;
	}

	event.preventDefault();
};

/* adds show/hide-button to navigation bars */
function createNavigationBarToggleButton() {
	var indexNavigationBar = 0;
    var NavFrame;
    /* iterate over all < div >-elements */
	var divs = document.getElementsByTagName( 'div' );
	for( var i = 0; (NavFrame = divs[i]); i++ ) {
        /* if found a navigation bar */
        if ( $( NavFrame ).hasClass( 'NavFrame' ) ) {

			indexNavigationBar++;
			var NavToggle = document.createElement( 'a' );
			NavToggle.className = 'NavToggle';
			NavToggle.setAttribute( 'id', 'NavToggle' + indexNavigationBar );
			NavToggle.setAttribute( 'href', '#' );
			$( NavToggle ).on( 'click', $.proxy( window.toggleNavigationBar, window, 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] ).hasClass( 'NavHead' ) ) {
                    NavToggle.style.color = NavFrame.childNodes[j].style.color;
					NavFrame.childNodes[j].appendChild( NavToggle );
				}
			}
			NavFrame.setAttribute( 'id', 'NavFrame' + indexNavigationBar );
		}
	}
}

mw.hook( 'wikipage.content' ).add( createNavigationBarToggleButton );

// Language selector
importScript( 'MediaWiki:Ls.js' );

// Início do Código para o TickerSource
importScript( 'MediaWiki:Ticker.js' );
importScript( 'MediaWiki:PageCSS.js' );

/**
 * 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]]
 * Autores: ver [[fr:w:MediaWiki:Common.js]]
 */

function TransformeEmPaginaDeDiscussao() {
	if( document.getElementById( 'PaginaDeDiscussao' ) ) {
		document.body.className = 'ns-talk';
	}
}
$( TransformeEmPaginaDeDiscussao );

/**
 * Altera o título da página
 *
 * A função procura por um banner como:
 ** <div id="RealTitleBanner">Div que está oculta
 ** <span id="RealTitle">Novo título</span>
 ** </div>
 * Um elemento com id=DisableRealTitle desabilita a função
 * @source: [[w:MediaWiki:Gadget-TitleRewrite.js]] ([[w:Special:PermaLink/33988491]])
 * @source: [[:en:MediaWiki:Common.js]] ([[en:Special:PermaLink/95609539]]) / [[:en:User:Interiot/js/RealTitle.js]]
 * @see: [[:en:MediaWiki talk:Common.js/Archive 2#Initial letter is shown capitalized due to technical restrictions]]
 * @see: [[:en:Wikipedia:Village pump (technical)/Archive AC#Name technical restrictions workaround]]
 * @author: [[:en:User:Interiot]]
 * @author: [[User:!Silent]]
 */
( function( $ ) {
'use strict';

function rewritePageTitle() {
	var $realTitle,
		$realTitleBanner = $( '#RealTitleBanner' );

	if ( $realTitleBanner.length !== 0 && !$( '#DisableRealTitle' ).length ) {
		$realTitle = $( '#RealTitle' );

		if ( $realTitle.length ) {
			$( 'h1:first' ).html( $realTitle.html() );
			$realTitleBanner.hide();
		}
	}
}

$( rewritePageTitle );

}( jQuery ) );