MediaWiki:Common.js e Ajuda:Página de testes/2: diferenças entre as páginas
(Diferenças entre páginas)
Conteúdo apagado Conteúdo adicionado
Desfeita a edição 62511167 de Albertoleoncio (As categorias não estão nos artigos, estão nas discussões deles) Etiqueta: Desfazer |
|||
Linha 1: | Linha 1: | ||
/* |
/* Todo código JavaScript presente aqui será carregado por todos os usuários em cada página carregada. */ |
||
/*jshint camelcase: true, curly: true, eqeqeq: true, immed: true, latedef: true, newcap: true, noarg: true, noempty: true, nonew: true, quotmark: single, trailing: true, undef: true, unused: true, bitwise: true, forin: true, regexp: true, strict: true, onevar: true, laxbreak: true */ |
|||
/*global mw, $ */ |
|||
( function () { |
|||
'use strict'; |
|||
/** |
/** |
||
* Extração de um parâmetro da URL atual ou da URL fornecida |
|||
* Oculta botão editar da [[Wikipédia:Esplanada/propostas]] e da [[Wikipédia:Esplanada/geral]] |
|||
* @deprecated: Use mw.util.getParamValue(paramName, [optional: url]) em vez desta função. |
|||
*/ |
|||
function getURLParamValue( paramName, url ) { |
|||
return mw.util.getParamValue( paramName, url ); |
|||
} |
|||
/* Test if an element has a certain class |
|||
* Maintainers: [[User:Mike Dillon]], [[User:R. Koot]], [[User:SG]] |
|||
* |
* |
||
* @deprecated: Use $(element).hasClass() instead. |
|||
* @author: Helder (https://github.com/he7d3r) |
|||
* @license: CC BY-SA 3.0 <https://creativecommons.org/licenses/by-sa/3.0/> |
|||
*/ |
*/ |
||
var hasClass = (function () { |
|||
/* Desativado por causar erro: $.collapsibleTabs.getSettings(...) is undefined ([[phab:T177108]]) |
|||
var reCache = {}; |
|||
mw.loader.using( 'mediawiki.util', function () { |
|||
function |
return function (element, className) { |
||
return (reCache[className] ? reCache[className] : (reCache[className] = new RegExp( '(?:\\s|^)' + className + '(?:\\s|$)' ))).test(element.className); |
|||
var temp = 'Template:Esplanada2/Preload'; |
|||
}; |
|||
})(); |
|||
//Scripts para páginas e/ou domínios específicos |
|||
if ( mw.config.get( 'wgUserLanguage' ) !== 'pt' ) { |
|||
switch( mw.config.get( 'wgCanonicalNamespace' ) ) { |
|||
temp += '/en'; |
|||
case 'Special': |
|||
} |
|||
switch( mw.config.get( 'wgTitle' ) ) { |
|||
case 'Pesquisar': |
|||
// Scripts específicos para a página de pesquisas |
|||
//TAREFA: Corrigir o script da página de pesquisa para que funcione com o servidor seguro |
|||
if ( mw.config.get( 'wgServer' ) !== 'https://secure.wikimedia.org' ) { |
|||
importScript( 'MediaWiki:Common.js/search.js' ); |
|||
} |
|||
break; |
|||
case 'Carregar imagem': |
|||
importScript( 'MediaWiki:UploadForm.js' ); |
|||
break; |
|||
case 'Páginas vigiadas': |
|||
importScript( 'MediaWiki:Common.js/watchlist.js'); |
|||
break; |
|||
} |
|||
break; |
|||
case 'Project': |
|||
case 'Project_talk': |
|||
switch( mw.config.get( 'wgTitle' ) ) { |
|||
case 'Página principal': |
|||
/** |
|||
* Melhorias na página principal |
|||
* Adiciona um link a lista completa de wikipédias em outras línguas e altera o texto exibido na aba |
|||
* |
|||
* @author: [[User:AzaToth]], [[User:R. Koot]], [[User:Alex Smotrov]] |
|||
* @source: [[en:MediaWiki:Common.js]] |
|||
*/ |
|||
$(function () { |
|||
mw.util.addPortletLink( 'p-lang', mw.util.wikiGetlink( 'Wikipédia:Wikipédia em outras línguas' ), |
|||
'Lista completa', 'interwiki-completelist', 'Lista completa de Wikipédias' ); |
|||
if ( mw.config.get( 'wgUserLanguage' ).substr( 0, 2 ) === 'pt' ) { |
|||
$( '#ca-nstab-project a' ).text( 'Página principal' ); |
|||
} |
|||
}); |
|||
break; |
|||
case 'Esplanada/propostas': |
|||
case 'Esplanada/geral': |
|||
/* |
|||
* Oculta botão editar da [[Wikipédia:Esplanada/propostas]] e da [[Wikipédia:Esplanada/geral]] |
|||
*/ |
|||
$(function () { |
|||
var href = mw.util.wikiGetlink( mw.config.get( 'wgPageName' ) ) |
|||
+ '?action=edit§ion=new&preload=Template:Esplanada2/Preload'; |
|||
if ( mw.config.get( 'wgUserLanguage' ).substr( 0, 2 ) !== 'pt' ) { |
|||
href += '/en'; |
|||
} |
|||
$( '#ca-addsection a' ).attr( 'href', href ); |
|||
if ( 'vector' === mw.config.get( 'skin' ) ) { |
|||
// Move o botão "editar" para o menu de ações |
|||
$('#ca-edit').appendTo('#p-cactions ul'); |
|||
} |
|||
}); |
|||
break; |
|||
} |
|||
break; |
|||
case 'File': |
|||
// Adiciona links para versões PNG em imagens SVG |
|||
importScript( 'MediaWiki:Common.js/SVGPNG.js' ); |
|||
break; |
|||
case 'MediaWiki': |
|||
break; |
|||
default: |
|||
// Todos os demais domínios |
|||
importScript( 'MediaWiki:Wikibugs.js' ); |
|||
} |
|||
if ( mw.config.get( 'wgAction' ) === 'edit' || mw.config.get( 'wgAction' ) === 'submit' ) { |
|||
$( '#ca-addsection' ).find( 'a' ).attr( |
|||
//scripts específicos para editar páginas |
|||
'href', |
|||
importScript( 'MediaWiki:Common.js/edit.js' ); |
|||
mw.util.getUrl( mw.config.get( 'wgPageName' ), { |
|||
} |
|||
action: 'edit', |
|||
if ( $.client.profile().name === 'msie' ) { |
|||
section: 'new', |
|||
//scripts específicos para Internet Explorer |
|||
preload: temp |
|||
importScript( 'MediaWiki:Common.js/IEFixes.js' ); |
|||
} ) |
|||
} |
|||
); |
|||
/** |
|||
if ( mw.config.get( 'skin' ) === 'vector' ) { |
|||
* Adiciona as predefinições {protegido} e {protegido-ip} às páginas protegidas |
|||
// Move o botão "editar" para o menu de ações |
|||
* @author: [[:pt:User:Rei-artur]] |
|||
$( '#p-cactions' ).removeClass( 'emptyPortlet' ).find( 'ul' ).append( $( '#ca-edit' ) ); |
|||
*/ |
|||
if ( mw.config.get( 'wgAction' ) === 'view' |
|||
&& !mw.config.get( 'wgCanonicalSpecialPageName' ) |
|||
&& !$.isEmpty( mw.config.get( 'wgRestrictionEdit' ) ) |
|||
&& ( mw.config.get( 'wgRestrictionEdit' )[0] === 'autoconfirmed' || mw.config.get( 'wgRestrictionEdit' )[0] === 'sysop' ) |
|||
&& mw.config.get( 'wgPageName' ) !== 'Wikipédia:Página_principal' ) |
|||
{ |
|||
importScript( 'MediaWiki:Topicon.js' ); |
|||
} |
} |
||
if ( $.inArray( mw.config.get( 'wgPageName' ), [ 'Wikipédia:Esplanada/propostas', 'Wikipédia:Esplanada/geral' ] ) !== -1 ) { |
|||
/** |
|||
$( hideEditButton ); |
|||
* Banners para dicas e doações vista apenas por anônimos |
|||
* Frases aleatórias que podem ser vistas por anônimos |
|||
* |
|||
* @author: [[:en:User:Gmaxwell]], [[:en:User:MZMcBride]] |
|||
*/ |
|||
if ( mw.config.get( 'wgUserName' ) === null ) { |
|||
importScript( 'MediaWiki:WikiBanners.js' ); |
|||
} |
|||
/** |
|||
* Manter no servidor seguro quem se loga pelo servidor seguro quando muda para outro projeto |
|||
* Sem este código, o usuário logado por https quando segue um interwiki, usa http e será deslogado (os logins são independentes). |
|||
*/ |
|||
if ( mw.config.get( 'wgServer' ) === 'https://secure.wikimedia.org' ) { |
|||
importScript( 'MediaWiki:Common.js/secure.js' ); |
|||
} |
|||
/** Parâmetro &withJS= para a URL |
|||
* Permite que sejam testados scripts do domínio MediaWiki |
|||
* sem precisar editar [[Especial:Minha página/vector.js]] |
|||
*/ |
|||
var extraJS = mw.util.getParamValue( 'withJS' ); |
|||
if (extraJS && extraJS.match( '^MediaWiki:[^&<>=%]*\.js$' )) { |
|||
importScript(extraJS); |
|||
} |
|||
/** |
|||
* Link destaque |
|||
* |
|||
* Adiciona estrela ao lado da ligação dos artigos destacados das outras Wikipédias |
|||
*/ |
|||
function LinkFA() { |
|||
if (document.getElementById( 'p-lang' )) { |
|||
var InterwikiLinks = document.getElementById( 'p-lang' ).getElementsByTagName( 'li' ); |
|||
for (var i = 0; i < InterwikiLinks.length; i++) { |
|||
if (document.getElementById(InterwikiLinks[i].className + '-fa' )) { |
|||
InterwikiLinks[i].className += ' FA'; |
|||
InterwikiLinks[i].title = 'Este artigo foi classificado como destacado.'; |
|||
} else if (document.getElementById(InterwikiLinks[i].className + '-fl' )) { |
|||
InterwikiLinks[i].className += ' FL'; |
|||
InterwikiLinks[i].title = 'Este anexo foi classificado como destacado.'; |
|||
} |
|||
} |
|||
} |
} |
||
} |
|||
});*/ |
|||
$( LinkFA ); |
|||
/** |
/** |
||
* Link bom |
|||
* Parâmetros &withCSS= e &withJS= para a URL |
|||
* |
* |
||
* Adiciona estrela prateada ao lado da ligação dos artigos bons das outras Wikipédias |
|||
* Permite que sejam testados scripts e folhas de estilos do domínio MediaWiki |
|||
* sem precisar editar páginas ".css" ou ".js" pessoais |
|||
* @source https://www.mediawiki.org/wiki/Snippets/Load_JS_and_CSS_by_URL |
|||
* @revision 2020-04-04 |
|||
*/ |
*/ |
||
function Bominterwiki() { |
|||
if (document.getElementById( 'p-lang' )) { |
|||
var extraCSS = mw.util.getParamValue( 'withCSS' ), |
|||
var InterwikiLinks = document.getElementById( 'p-lang' ).getElementsByTagName( 'li' ); |
|||
extraJS = mw.util.getParamValue( 'withJS' ); |
|||
for (var i = 0; i < InterwikiLinks.length; i++) { |
|||
if ( extraCSS ) { |
|||
if (document.getElementById(InterwikiLinks[i].className + '-bom' )) { |
|||
// WARNING: DO NOT REMOVE THIS "IF" - REQUIRED FOR SECURITY (against XSS/CSRF attacks) |
|||
InterwikiLinks[i].className += ' BOM'; |
|||
if ( /^MediaWiki:[^&<>=%#]*\.css$/.test( extraCSS ) ) { |
|||
InterwikiLinks[i].title = 'Este artigo foi classificado como bom.'; |
|||
mw.loader.load( '/w/index.php?title=' + extraCSS + '&action=raw&ctype=text/css', 'text/css' ); |
|||
} |
} |
||
mw.notify( 'Só são permitidas páginas do domínio MediaWiki.', { title: 'Valor withCSS inválido' } ); |
|||
} |
} |
||
} |
} |
||
} |
|||
$( Bominterwiki ); |
|||
if ( extraJS ) { |
|||
// WARNING: DO NOT REMOVE THIS "IF" - REQUIRED FOR SECURITY (against XSS/CSRF attacks) |
|||
/** Correlatos |
|||
if ( /^MediaWiki:[^&<>=%#]*\.js$/.test( extraJS ) ) { |
|||
* Adiciona links para os projetos correlatos no menu lateral, a partir da [[Predefinição:Correlatos]]. |
|||
mw.loader.load( '/w/index.php?title=' + extraJS + '&action=raw&ctype=text/javascript' ); |
|||
* TODO: Remover quando o [[bugzilla:708]] for resolvido |
|||
*/ |
|||
function adiciona_correlatos() { |
|||
if (iProjectHTML = document.getElementById( 'interProject' )) { |
|||
iProjectHTML = iProjectHTML.innerHTML; |
|||
var iProject = document.createElement( 'div' ); |
|||
if (self.skin === 'vector' ) { |
|||
iProject.className = 'portal'; |
|||
cl = 'body'; |
|||
} else { |
} else { |
||
iProject.className = 'portlet'; |
|||
mw.notify( 'Só são permitidas páginas do domínio MediaWiki.', { title: 'Valor withJS inválido' } ); |
|||
cl = 'pBody'; |
|||
} |
} |
||
iProject.innerHTML = '<h5>Correlatos<\/h5><div class="' + cl + '">' + iProjectHTML; |
|||
iProject.setAttribute( 'id', 'p-correlatos' ); |
|||
iProject.id = 'p-correlatos'; |
|||
var ptb = document.getElementById( 'p-tb' ); |
|||
ptb.parentNode.insertBefore(iProject, ptb.nextSibling); |
|||
} |
} |
||
} |
} |
||
$( adiciona_correlatos ); |
|||
// Ocultar a barra de sumário das páginas de pedidos |
|||
mw.loader.using( 'mediawiki.util', function () { |
|||
if ( /Wikipédia:Pedidos\/(?!Outros|Revisão_de_ações_administrativas$)/.test( mw.config.get( 'wgPageName' ) ) && mw.util.getParamValue( 'section' ) === 'new' ) { |
|||
$( '.mw-summary' ).hide(); |
|||
} |
|||
} ); |
|||
/** |
/** |
||
* Altera o título da página |
|||
* Editnotices mágicos **************************************************** |
|||
* |
* |
||
* A função procura por um banner como: |
|||
* Descrição: Adiciona editnotices nas páginas de desambiguação e biografias de pessoas vivas. |
|||
* <nowiki><div id="RealTitleBanner">Div que está oculto</nowiki> |
|||
* Mantenedores: [[:en:User:RockMFR]] |
|||
* <nowiki><span id="RealTitle">título</span></nowiki> |
|||
* |
|||
* <nowiki></div></nowiki> |
|||
* @param {string} name |
|||
* Um elemento com id=DisableRealTitle desabilita a função |
|||
* @source: [[w:en:MediaWiki:Common.js]] |
|||
*/ |
*/ |
||
rewritePageH1 = function () { |
|||
function addEditIntro( name ) { |
|||
try { |
|||
$( '.mw-editsection, #ca-edit, #ca-ve-edit' ).find( 'a' ).each( function ( i, el ) { |
|||
var realTitleBanner = document.getElementById( 'RealTitleBanner' ); |
|||
el.href = $( this ).attr( 'href' ) + '&editintro=' + name; |
|||
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) { |
|||
/* Algo deu errado. */ |
|||
} |
|||
} |
} |
||
$( rewritePageH1 ); |
|||
if ( mw.config.get( 'wgNamespaceNumber' ) === 0 ) { |
|||
/** |
|||
$( function () { |
|||
* WikiMiniAtlas é uma popup com um mapa do mundo para clicar e arrastar disponível nos artigos com geocoordenadas |
|||
if ( document.getElementById( 'disambig' ) ) { |
|||
* Ver [[meta:WikiMiniAtlas]] para maiores informações |
|||
addEditIntro( 'MediaWiki:Editnotice-0-Desambiguação' ); |
|||
* @author: [[w:User:Dschwen]] |
|||
*/ |
|||
var metaBase = 'http://meta.wikimedia.org'; |
|||
if ( mw.config.get( 'wgServer' ) === 'https://secure.wikimedia.org' ) { |
|||
metaBase = 'https://secure.wikimedia.org/wikipedia/meta'; |
|||
} |
|||
mw.loader.load( metaBase + '/w/index.php?title=MediaWiki:Wikiminiatlas.js&action=raw&ctype=text/javascript&smaxage=21600&maxage=86400' ); |
|||
/** |
|||
* Permite criar tabelas para esconder/expandir |
|||
* Ver [[:en:Wikipédia:NavFrame]]. |
|||
* @author: [[User:R. Koot]] |
|||
* TODO: Remover quando [[mw:ResourceLoader/Default_modules#jQuery.makeCollapsible]] estiver em uso e |
|||
* as predefinições forem adaptadas para usar o novo plugin |
|||
*/ |
|||
var autoCollapse = 2, |
|||
collapseCaption = 'Esconder', |
|||
expandCaption = 'Expandir'; |
|||
/** |
|||
* @param {number} tableIndex Índice da tabela a ser alterada |
|||
* @return {boolean} Caso não encontre a tabela ou o botão com o índice informado retorna false |
|||
*/ |
|||
function collapseTable( tableIndex ) { |
|||
var Button = document.getElementById( 'collapseButton' + tableIndex ); |
|||
var Table = document.getElementById( 'collapsibleTable' + tableIndex ); |
|||
if ( !Table || !Button ) { |
|||
return false; |
|||
} |
|||
var Rows = Table.rows; |
|||
if (Button.firstChild.data == collapseCaption) { |
|||
for (var i = 1; i < Rows.length; i++) { |
|||
Rows[i].style.display = 'none'; |
|||
} |
} |
||
Button.firstChild.data = expandCaption; |
|||
} ); |
|||
} else { |
|||
for (var i = 1; i < Rows.length; i++) { |
|||
Rows[i].style.display = Rows[0].style.display; |
|||
} |
|||
Button.firstChild.data = collapseCaption; |
|||
} |
|||
} |
|||
function createCollapseButtons() { |
|||
var tableIndex = 0; |
|||
var NavigationBoxes = new Object(); |
|||
var Tables = document.getElementsByTagName( 'table' ); |
|||
for (var i = 0; i < Tables.length; i++) { |
|||
if (hasClass(Tables[i], 'collapsible' )) { |
|||
/* only add button and increment count if there is a header row to work with */ |
|||
var HeaderRow = Tables[i].getElementsByTagName( 'tr' )[0]; |
|||
if (!HeaderRow) continue; |
|||
var Header = HeaderRow.getElementsByTagName( 'th' )[0]; |
|||
if (!Header) continue; |
|||
NavigationBoxes[tableIndex] = Tables[i]; |
|||
Tables[i].setAttribute( 'id', 'collapsibleTable' + tableIndex); |
|||
var Button = document.createElement( 'span' ); |
|||
var ButtonLink = document.createElement( 'a' ); |
|||
var ButtonText = document.createTextNode(collapseCaption); |
|||
Button.style.styleFloat = 'right'; |
|||
Button.style.cssFloat = 'right'; |
|||
Button.style.fontWeight = 'normal'; |
|||
Button.style.textAlign = 'right'; |
|||
Button.style.width = '6em'; |
|||
ButtonLink.style.color = Header.style.color; |
|||
ButtonLink.setAttribute( 'id', 'collapseButton' + tableIndex); |
|||
ButtonLink.setAttribute( 'href', 'javascript:collapseTable(' + tableIndex + ');' ); |
|||
ButtonLink.appendChild(ButtonText); |
|||
Button.appendChild(document.createTextNode( '[' )); |
|||
Button.appendChild(ButtonLink); |
|||
Button.appendChild(document.createTextNode( ']' )); |
|||
Header.insertBefore(Button, Header.childNodes[0]); |
|||
$( function () { |
|||
tableIndex++; |
|||
var cats = mw.config.get( 'wgCategories' ); |
|||
if ( !cats ) { |
|||
return; |
|||
} |
} |
||
} |
|||
if ( $.inArray( 'Pessoas vivas', cats ) !== -1 ) { |
|||
addEditIntro( 'MediaWiki:Editnotice-0-BPV' ); |
|||
for (var i = 0; i < tableIndex; i++) { |
|||
if (hasClass(NavigationBoxes[i], 'collapsed' ) || (tableIndex >= autoCollapse && hasClass(NavigationBoxes[i], 'autocollapse' ))) { |
|||
collapseTable(i); |
|||
} |
} |
||
} |
} |
||
} |
} |
||
$( createCollapseButtons ); |
|||
// Scripts para páginas específicas |
|||
/** |
/** |
||
* Barras de navegação dinâmicas (experimental) |
|||
* IPBan Desktop |
|||
* Ver [[Wikipédia:NavFrame]]. |
|||
* @author [[w:pt:User:Danilo.mac]] |
|||
* @author |
* @author: UNMAINTAINED |
||
* TODO: Remover quando [[mw:ResourceLoader/Default_modules#jQuery.makeCollapsible]] estiver em uso e |
|||
* as predefinições forem adaptadas para usar o novo plugin |
|||
*/ |
*/ |
||
// set up the words in your language |
|||
mw.loader.using(['mediawiki.user']).then( function () { |
|||
var NavigationBarHide = '[' + collapseCaption + ']', |
|||
$(function () { |
|||
NavigationBarShow = '[' + expandCaption + ']'; |
|||
var IPBanNamespaces = [0, 2, 4, 6, 10, 14, 100, 104, 710, 828]; |
|||
var caEdit = document.getElementById('ca-edit'); |
|||
/** |
|||
if (mw.user.isAnon() && IPBanNamespaces.indexOf(mw.config.get('wgNamespaceNumber')) > -1) { |
|||
* Shows and hides content and picture (if available) of navigation bars |
|||
mw.util.addCSS( '.mw-editsection{display:none}li#ca-ve-edit{display:none !important;}' ); |
|||
* @param {number} indexNavigationBar: the index of navigation bar to be toggled |
|||
if(caEdit && caEdit.firstChild) { |
|||
* @return {boolean} Caso não encontre a tabela ou o botão com o índice informado retorna false |
|||
caEdit.firstChild.href = 'https://pt.wikipedia.org/w/index.php?title=Especial:Entrar&returnto=' + encodeURIComponent(mw.config.get('wgPageName')); |
|||
*/ |
|||
caEdit.firstChild.innerHTML = 'Editar'; |
|||
function toggleNavigationBar(indexNavigationBar) { |
|||
var NavToggle = document.getElementById( 'NavToggle' + indexNavigationBar); |
|||
var NavFrame = document.getElementById( 'NavFrame' + indexNavigationBar); |
|||
if (!NavFrame || !NavToggle) { |
|||
return false; |
|||
} |
|||
// if shown now |
|||
if (NavToggle.firstChild.data == NavigationBarHide) { |
|||
for ( |
|||
var NavChild = NavFrame.firstChild; |
|||
NavChild != null; |
|||
NavChild = NavChild.nextSibling) { |
|||
if (hasClass(NavChild, 'NavPic' )) { |
|||
NavChild.style.display = 'none'; |
|||
} |
|||
if (hasClass(NavChild, 'NavContent' )) { |
|||
NavChild.style.display = 'none'; |
|||
} |
|||
} |
} |
||
NavToggle.firstChild.data = NavigationBarShow; |
|||
// if hidden now |
|||
} else if (NavToggle.firstChild.data == NavigationBarShow) { |
|||
for ( |
|||
var NavChild = NavFrame.firstChild; |
|||
NavChild != null; |
|||
NavChild = NavChild.nextSibling) { |
|||
if (hasClass(NavChild, 'NavPic' )) { |
|||
NavChild.style.display = 'block'; |
|||
} |
|||
if (hasClass(NavChild, 'NavContent' )) { |
|||
NavChild.style.display = 'block'; |
|||
} |
|||
} |
|||
NavToggle.firstChild.data = NavigationBarHide; |
|||
} |
} |
||
} |
|||
}); |
|||
} ); |
|||
// adds show/hide-button to navigation bars |
|||
}() ); |
|||
function createNavigationBarToggleButton() { |
|||
var indexNavigationBar = 0; |
|||
// iterate over all < div >-elements |
|||
var divs = document.getElementsByTagName( 'div' ); |
|||
for ( |
|||
var i = 0; |
|||
NavFrame = divs[i]; |
|||
i++) { |
|||
// if found a navigation bar |
|||
if (hasClass(NavFrame, '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); |
|||
for ( |
|||
var NavChild = NavFrame.firstChild; |
|||
NavChild != null; |
|||
NavChild = NavChild.nextSibling) { |
|||
if (hasClass(NavChild, 'NavPic' ) || hasClass(NavChild, 'NavContent' )) { |
|||
if (NavChild.style.display == 'none' ) { |
|||
NavToggleText = document.createTextNode(NavigationBarShow); |
|||
break; |
|||
} |
|||
} |
|||
} |
|||
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 (hasClass(NavFrame.childNodes[j], 'NavHead' )) { |
|||
NavFrame.childNodes[j].appendChild(NavToggle); |
|||
} |
|||
} |
|||
NavFrame.setAttribute( 'id', 'NavFrame' + indexNavigationBar); |
|||
} |
|||
} |
|||
} |
|||
$( createNavigationBarToggleButton ); |
|||
/** |
|||
* Caixa com abas, feitas com a [[Predefinição:Metacaixa]] |
|||
* @source: [[:w:fr:MediaWiki:Common.js]] (traduzido de [[:w:ca:MediaWiki:Common.js]]) |
|||
* @author: [[:w:ca:User:Peleguer]], [[:w:ca:User:Joanjoc]], [[:w:fr:User:Antaya]] (adaptação), [[:w:pt:Rei-artur]] (adaptação) |
|||
*/ |
|||
function CadreOngletInit() { |
|||
var i = 0; |
|||
for (i = 0; i <= 9; i++) { |
|||
var vMb, |
|||
vBt, |
|||
j, |
|||
vOgIni = 0; |
|||
vMb = document.getElementById( 'mb' + i); |
|||
if ( !vMb ) { |
|||
break; |
|||
} |
|||
for ( j = 1; j <= 9; j++ ) { |
|||
vBt = document.getElementById( 'mb' + i + 'bt' + j ); |
|||
if ( !vBt ) { |
|||
break; |
|||
} |
|||
vBt.onclick = CadreOngletVoirOnglet; |
|||
if (vBt.className === 'mbBoutonSel' ) { |
|||
vOgIni = j; |
|||
} |
|||
} |
|||
if (vOgIni === 0) { |
|||
vOgIni = 1 + Math.floor((j - 1) * Math.random()); |
|||
document.getElementById( 'mb' + i + 'og' + vOgIni).style.display = 'block'; |
|||
document.getElementById( 'mb' + i + 'og' + vOgIni).style.visibility = 'visible'; |
|||
document.getElementById( 'mb' + i + 'bt' + vOgIni).className = 'mbBoutonSel'; |
|||
} |
|||
} |
|||
} |
|||
/* |
|||
* @return {boolean} Retorna false ao terminar a execução |
|||
*/ |
|||
function CadreOngletVoirOnglet() { |
|||
var vMbNom = this.id.substr( 0, 3 ), |
|||
vIndex = this.id.substr( 5, 1 ), |
|||
i; |
|||
for ( i = 1; i <= 9; i++ ) { |
|||
var vOgElem = document.getElementById( vMbNom + 'og' + i ); |
|||
if ( !vOgElem ) { |
|||
break; |
|||
} |
|||
if ( vIndex == i ) { |
|||
vOgElem.style.display = 'block'; |
|||
vOgElem.style.visibility = 'visible'; |
|||
document.getElementById(vMbNom + 'bt' + i).className = 'mbBoutonSel'; |
|||
} else { |
|||
vOgElem.style.display = 'none'; |
|||
vOgElem.style.visibility = 'hidden'; |
|||
document.getElementById(vMbNom + 'bt' + i).className = 'mbBouton'; |
|||
} |
|||
} |
|||
return false; |
|||
} |
|||
/** |
|||
* retour si ailleurs que sur l'espace utilisateur, |
|||
* sachant que c'est une horreur au niveau de l'accessibilité |
|||
* et qu'il est impossible de 'récupérer' ou de recycler ce script |
|||
* (celui-ci fonctionnant par inclusion de sous pages) |
|||
*/ |
|||
if ( mw.config.get( 'wgNamespaceNumber' ) !== 0 || mw.config.get( 'wgNamespaceNumber' ) !== 102 ) { |
|||
$( CadreOngletInit ); |
|||
} |