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

Fonte: Wikinotícias
Conteúdo apagado Conteúdo adicionado
m substituição: obsoleto
Etiquetas: Edição via dispositivo móvel Edição feita através do sítio móvel Edição móvel avançada
m +Javascript para tempo
Linha 172: Linha 172:
** </div>
** </div>
* Um elemento com id=DisableRealTitle desabilita a função
* 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( $ ) {
( function( $ ) {
Linha 199: Linha 193:


}( jQuery ) );
}( jQuery ) );

importScript('MediaWiki:Tempo.js');

Revisão das 00h45min de 29 de junho de 2021

/* Código Javascript colocado aqui será carregado para todos os utilizadores em cada carregamento de página */

mw.loader.using( ['mediawiki.util'], function () {
	var extraCSS = mw.util.getParamValue( 'withCSS' ),
		extraJS = mw.util.getParamValue( 'withJS' );

	if ( extraCSS ) {
		// WARNING: DO NOT REMOVE THIS "IF" - REQUIRED FOR SECURITY (against XSS/CSRF attacks)
		if ( /^MediaWiki:[^&<>=%#]*\.css$/.test( extraCSS ) ) {
			mw.loader.load( '/w/index.php?title=' + extraCSS + '&action=raw&ctype=text/css', 'text/css' );
		} else {
			mw.notify( 'Só são permitidas páginas do domínio MediaWiki.', { title: 'Valor withCSS inválido' } );
		}
	}

	if ( extraJS ) {
		// WARNING: DO NOT REMOVE THIS "IF" - REQUIRED FOR SECURITY (against XSS/CSRF attacks)
		if ( /^MediaWiki:[^&<>=%#]*\.js$/.test( extraJS ) ) {
			mw.loader.load( '/w/index.php?title=' + extraJS + '&action=raw&ctype=text/javascript' );
		} else {
			mw.notify( 'Só são permitidas páginas do domínio MediaWiki.', { title: 'Valor withJS inválido' } );
		}
	}
} );

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

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

importScript('MediaWiki:Tempo.js');