MediaWiki:Common.js: diferenças entre revisões
Conteúdo apagado Conteúdo adicionado
mw.util broken: phabricator:T164242 |
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 |
||
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 ) { |
|||
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 |
|||
var extraCSS = mw.util.getParamValue( 'withCSS' ), |
|||
* Adiciona links para os projetos correlatos no menu lateral, a partir da [[Predefinição:Correlatos]]. |
|||
extraJS = mw.util.getParamValue( 'withJS' ); |
|||
* 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]]) |
|||
*/ |
|||
⚫ | |||
if ( extraCSS ) { |
|||
mw.util.addCSS( '#interProject, #sisterProjects {display: none; speak: none;} #p-tb .pBody {padding-right: 0;}' ); |
|||
// WARNING: DO NOT REMOVE THIS "IF" - REQUIRED FOR SECURITY (against XSS/CSRF attacks) |
|||
function iProject() { |
|||
if ( /^MediaWiki:[^&<>=%#]*\.css$/.test( extraCSS ) ) { |
|||
var iProjectHtml, interProject; |
|||
mw.loader.load( '/w/index.php?title=' + extraCSS + '&action=raw&ctype=text/css', 'text/css' ); |
|||
if ( document.getElementById( 'interProject' ) ) { |
|||
} else { |
|||
iProjectHtml = document.getElementById( 'interProject' ).innerHTML; |
|||
mw.notify( 'Só são permitidas páginas do domínio MediaWiki.', { title: 'Valor withCSS inválido' } ); |
|||
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 ); |
|||
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 |
* Commons |
Revisão das 14h07min de 1 de fevereiro 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
* @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 ) );