MediaWiki:Gadget-fastbuttons.js e Ajuda:Página de testes/1: diferenças entre as páginas
(Diferenças entre páginas)
Conteúdo apagado Conteúdo adicionado
m http://pt.wikipedia.org/w/index.php?diff=26433967&oldid=26433638 |
m Nova função patrolCurrentEdit para patrulhar edições ao clicar nos botões; Uso consistente de aspas simples; jQuery para manipular o DOM; Menos repetições de código; +Sugestões de correções futuras |
||
Linha 8: | Linha 8: | ||
window.fb = { |
window.fb = { |
||
//Replace this string by 5~ before saving: |
//Replace this string by 5~ before saving: |
||
version: ' |
version: '01h49min de 17 de agosto de 2011 (UTC)', |
||
ns: mw.config.get('wgNamespaceNumber'), |
ns: mw.config.get('wgNamespaceNumber'), |
||
title: mw.config.get('wgTitle'), |
title: mw.config.get('wgTitle'), |
||
catScanUrl: 'http://toolserver.org/~daniel/WikiSense/CategoryIntersect.php' + |
catScanUrl: 'http://toolserver.org/~daniel/WikiSense/CategoryIntersect.php' + |
||
$.param( { |
$.param( { |
||
'wikilang': ' |
'wikilang': mw.config.get('wgContentLanguage'), |
||
'wikifam': '.wikipedia.org', |
'wikifam': '.wikipedia.org', |
||
'userlang': ' |
'userlang': mw.config.get('wgUserLanguage'), |
||
'basecat': mw.config.get('wgTitle'), |
'basecat': mw.config.get('wgTitle'), |
||
'basedeep': '1', |
'basedeep': '1', |
||
Linha 26: | Linha 26: | ||
$submenu: $( '<div/>' ) |
$submenu: $( '<div/>' ) |
||
}; |
}; |
||
// TODO: Mover estas variáveis para o escopo em que são realmente utilizadas |
|||
var esbText = '', |
|||
esbText2 = ''; |
|||
/* Cria os links que ativam a função fb.run() |
/* Cria os links que ativam a função fb.run() |
||
Linha 33: | Linha 37: | ||
* @param {string=} promptMsg Text for prompt message (optional) |
* @param {string=} promptMsg Text for prompt message (optional) |
||
* @return {string} The HTML string of the link |
* @return {string} The HTML string of the link |
||
* FIXME: Usar onClick em vez de onKeyPress, para melhor compatiblidade ([[mw:RL/MGU#Event_binding]]) |
|||
*/ |
*/ |
||
fb.link = function (func, text, title, promptMsg) { |
fb.link = function (func, text, title, promptMsg) { |
||
Linha 50: | Linha 55: | ||
/*** Submenu [ER] ***/ |
/*** Submenu [ER] ***/ |
||
ER: 'Regra: <span class="fb-button fb-disabled-button">1</span>' + [ |
ER: 'Regra: <span class="fb-button fb-disabled-button">1</span>' + [ |
||
fb.link( |
fb.link('ER|5', '5', 'Aparecimento recorrente (se o conteúdo for igual' + |
||
' ao eliminado por votação)'), |
|||
(($.inArray(fb.ns, [0, 102]) !== -1) ? |
(($.inArray(fb.ns, [0, 102]) !== -1) ? |
||
fb.link('ER|6', '6', 'Título é spam') : |
fb.link('ER|6', '6', 'Título é spam') : |
||
'<span class="fb-button fb-disabled-button">6</span>'), |
'<span class="fb-button fb-disabled-button">6</span>'), |
||
fb.link( |
fb.link('ER|7', '7', 'Próprio criador reconhece que se enganou'), |
||
(($.inArray('sysop', mw.config.get('wgUserGroups')) > -1) ? |
(($.inArray('sysop', mw.config.get('wgUserGroups')) > -1) ? |
||
fb.link( |
fb.link('ER|8', '8', 'Eliminações temporárias sem perda de histórico' + |
||
' para resolver problemas técnicos') : |
|||
'<span class="fb-button fb-disabled-button">8</span>'), |
'<span class="fb-button fb-disabled-button">8</span>'), |
||
fb.link( |
fb.link('ER|9', '9', 'Eliminar redirect, página sem histórico relevante' |
||
+ |
+ ' (mover página redirecionada para cá)'), |
||
((fb.ns === 0) ? |
((fb.ns === 0) ? |
||
fb.link( |
fb.link('ER|10', '10', 'Namespaces que não existem (WikipÉdia, AjUda)') : |
||
'<span class="fb-button fb-disabled-button">10</span>' ), |
'<span class="fb-button fb-disabled-button">10</span>' ), |
||
fb.link( |
fb.link('ER|11', '11', 'Má configuração do teclado (Página,' + |
||
' Usuário:Sicrano)'), |
|||
(fb.ns == 6) ? |
(fb.ns == 6) ? |
||
fb.link( |
fb.link('ER|12', '12', 'Imagens, somente por quem a carregou') : |
||
'<span class="fb-button fb-disabled-button">12</span>', |
'<span class="fb-button fb-disabled-button">12</span>', |
||
($.inArray(fb.ns, [0, 102]) !== -1) ? |
($.inArray(fb.ns, [0, 102]) !== -1) ? |
||
fb.link( |
fb.link('ER|13', '13', 'Páginas sem histórico relevante que são' + |
||
' violações flagrantes de direitos autorais de outras páginas' + |
|||
' na internet.') : |
|||
'<span class="fb-button fb-disabled-button">13</span>', |
'<span class="fb-button fb-disabled-button">13</span>', |
||
(fb.ns == 6) ? |
(fb.ns == 6) ? |
||
fb.link( |
fb.link('ER|14', '14', 'Ficheiros (arquivos) duplicados') : |
||
'<span class="fb-button fb-disabled-button">14</span>', |
'<span class="fb-button fb-disabled-button">14</span>', |
||
fb.link( |
fb.link('ER|17', '17', 'Salto de domínio'), |
||
(fb.ns == 1) ? |
(fb.ns == 1) ? |
||
fb.link( |
fb.link('ER|18', '18', 'Discussão cujos artigos não existem') : |
||
'<span class="fb-button fb-disabled-button">18</span>', |
'<span class="fb-button fb-disabled-button">18</span>', |
||
(fb.ns == 6) ? |
(fb.ns == 6) ? |
||
fb.link( |
fb.link('ER|19', '19', 'Ficheiros (domínio Ficheiro:) que não são som,' + |
||
' imagem ou vídeo') : |
|||
'<span class="fb-button fb-disabled-button">19</span>', |
'<span class="fb-button fb-disabled-button">19</span>', |
||
fb.link( |
fb.link('ER|20', '20', 'Impróprio'), |
||
(mw.config.get('wgPageName').indexOf( |
(mw.config.get('wgPageName').indexOf('Wikipédia:Páginas_para_eliminar/') === 0) ? |
||
fb.link( |
fb.link('ER|21', '21', 'Página de eliminação de um artigo antes de' + |
||
' passados 6 meses da última votação') : |
|||
'<span class="fb-button fb-disabled-button">21</span>', |
'<span class="fb-button fb-disabled-button">21</span>', |
||
($.inArray(fb.ns, [0, 102]) !== -1) ? |
($.inArray(fb.ns, [0, 102]) !== -1) ? |
||
fb.link( |
fb.link('ER|A1', 'A1', 'Páginas com o título malformatado, absurdo,' + |
||
' com palavras que não o são, com erros devidos à má configuração' + |
|||
' do teclado, com codificação incorreta do sistema ou que expressem' + |
|||
' domínios que não existem.') : |
|||
'<span class="fb-button fb-disabled-button">A1</span>', |
'<span class="fb-button fb-disabled-button">A1</span>', |
||
(fb.ns == 14) ? |
(fb.ns == 14) ? |
||
fb.link( |
fb.link('ER|C1', 'C1', 'Categorias vazias, desnecessárias ou substituídas') : |
||
'<span class="fb-button fb-disabled-button">C1</span>', |
'<span class="fb-button fb-disabled-button">C1</span>', |
||
(fb.ns % 2 == 1) ? |
(fb.ns % 2 == 1) ? |
||
fb.link( |
fb.link('ER|D1', 'D1', 'Discussões de páginas inexistentes') : |
||
'<span class="fb-button fb-disabled-button">D1</span>', |
'<span class="fb-button fb-disabled-button">D1</span>', |
||
(fb.ns % 2 == 1) ? |
(fb.ns % 2 == 1) ? |
||
fb.link( |
fb.link('ER|D2', 'D2', 'Discussões de páginas para eliminação ou com' + |
||
' histórico irrelevante') : |
|||
'<span class="fb-button fb-disabled-button">D2</span>', |
'<span class="fb-button fb-disabled-button">D2</span>', |
||
($.inArray(fb.ns, [2, 3]) !== -1) ? |
($.inArray(fb.ns, [2, 3]) !== -1) ? |
||
fb.link( |
fb.link('ER|U1', 'U1', 'Uso impróprio da página de usuário') : |
||
'<span class="fb-button fb-disabled-button">U1</span>', |
'<span class="fb-button fb-disabled-button">U1</span>', |
||
(fb.ns == 2) ? |
(fb.ns == 2) ? |
||
fb.link( |
fb.link('ER|U2', 'U2', 'PU criada por outro usuário') : |
||
'<span class="fb-button fb-disabled-button">U2</span>', |
'<span class="fb-button fb-disabled-button">U2</span>', |
||
(fb.ns == 10) ? |
(fb.ns == 10) ? |
||
fb.link( |
fb.link('ER|P1', 'P1', 'Predefinições vazias, desnecessárias ou' + |
||
' substituídas') : |
|||
'<span class="fb-button fb-disabled-button">P1</span>', |
'<span class="fb-button fb-disabled-button">P1</span>', |
||
fb.link( |
fb.link('ER|R1', 'R1', 'Redirecionamento indevido, desnecessário, sem' + |
||
' afluentes, para páginas inexistente ou eliminadas'), |
|||
(fb.ns % 2 == 1) ? |
(fb.ns % 2 == 1) ? |
||
fb.link( |
fb.link('ER|R2', 'R2', 'Redirecionamento de página de discussão') : |
||
'<span class="fb-button fb-disabled-button">R2</span>' |
'<span class="fb-button fb-disabled-button">R2</span>' |
||
].join(' '), |
].join(' '), |
||
/*** Submenu [ESR] ***/ |
/*** Submenu [ESR] ***/ |
||
// FIXME: Usar jQuery em vez de onKeyPress e onMouseDown, para melhor compatiblidade ([[mw:RL/MGU#Event_binding]]) |
|||
ESR: fb.link("subst:ESR-banda|1=~~" + "~~", "banda", "Artigo sobre banda sem fontes e sem notoriedade") |
|||
ESR: fb.link('subst:ESR-banda|1=~~' + '~~', 'banda', 'Artigo sobre banda sem fontes e sem notoriedade') |
|||
+ fb.link( |
+ fb.link('subst:ESR-bio|1=~~' + '~~', 'biografia', 'Biografia sem fontes e sem notoriedade') |
||
+ fb.link('subst:ESR-empresa|1=~~' + '~~', 'empresa', 'Empresa sem fontes e sem notoriedade') |
|||
+ "outra: <input type=\"text\" id=\"fb-esr-input\" onKeyPress=\"fb.ok(event, 'ESR')\" size=55/>" |
|||
+ |
+ 'outra: <input type="text" id="fb-esr-input" onKeyPress="fb.ok(event, \'ESR\')" size=55/>' |
||
+ '<input type="button" onMouseDown="fb.ok(\'ok\', \'ESR\')" value="OK"/>', |
|||
/*** Submenu [esboço] ***/ |
/*** Submenu [esboço] ***/ |
||
// FIXME: Usar jQuery em vez de onkeyup, onKeyPress e onMouseDown, para melhor compatiblidade ([[mw:RL/MGU#Event_binding]]) |
|||
esb: fb.link("mínimo", "mínimo", "Artigo com apenas uma frase") + |
|||
esb: fb.link('mínimo', 'mínimo', 'Artigo com apenas uma frase') + |
|||
' ' + fb.link('esboço', 'esboço', 'Artigo ainda pouco desenvolvido') + |
|||
" esboço-" + |
|||
' esboço-' + |
|||
"<input id=\"fb-esb-input\" onkeyup='fb.callAPI(\"esb\")'" + |
|||
" |
'<input id="fb-esb-input" onkeyup="fb.callAPI(\'esb\')"' + |
||
' onKeyPress="fb.ok(event, \'esb\')" size=14/>' + |
|||
'<input type="button" onMouseDown="fb.ok(\'ok\', \'esb\')" value="OK"/>', |
|||
/*** Submenu [manuteção] ***/ |
/*** Submenu [manuteção] ***/ |
||
man: [ |
man: [ |
||
fb.link( |
fb.link('subst:wkf', 'wikificar', 'Não está formatado de acordo com o livro' + |
||
' de estilo'), |
|||
fb.link( |
fb.link('subst:s-fontes', 'sem fontes', 'Página não cita nenhuma fonte ou' + |
||
' referência'), |
|||
fb.link( |
fb.link('sem cat', 'sem cat', 'Página não está em nenhuma categoria'), |
||
fb.link( |
fb.link('subst:rec', 'reciclagem', 'Página precisa ser reciclada de acordo' + |
||
' com o livro de estilo'), |
|||
fb.link( |
fb.link('parcial', 'parcial', 'Artigo possui passagens que não respeitam o' + |
||
' princípio da imparcialidade'), |
|||
fb.link( |
fb.link('subst:ctx', 'contexto', 'Página carece de contexto'), |
||
fb.link( |
fb.link('controverso|artigo', 'controverso', 'controverso devido às disputas' + |
||
' sobre o seu conteúdo'), |
|||
fb.link( |
fb.link('subst:f-referências', 'formatar referências', 'Artigo contém' + |
||
' referências que necessitam de formatação'), |
|||
fb.link( |
fb.link('subst:m-notas', 'mais notas', 'Página cita fontes fiáveis, mas não' + |
||
' cobre todo o texto'), |
|||
fb.link( |
fb.link('subst:s-notas', 'sem notas', 'Existem fontes no final da página,' + |
||
' mas não são citadas no corpo do artigo'), |
|||
fb.link( |
fb.link('subst:s-fontes-bpv', 'bpv sem fontes', 'Biografia de pessoa viva' + |
||
' que não cita nenhuma fonte'), |
|||
fb.link( |
fb.link('subst:fpr', 'fonte primária', 'Artigo necessita de fontes' + |
||
' secundárias fiáveis publicadas por terceiros') |
|||
].join(' '), |
].join(' '), |
||
/*** Submenu [busca] ***/ |
/*** Submenu [busca] ***/ |
||
Linha 172: | Linha 179: | ||
/*** Submenu [aviso] ***/ |
/*** Submenu [aviso] ***/ |
||
warn: [fb.link( |
warn: [fb.link('subst:bem-vindo IP', 'BV-IP', |
||
'Boas-vindas para usuário(a) não registrado(a)'), |
|||
fb.link( |
fb.link('subst:bem-vindo', 'BV', 'Bem-vindo(a) à Wikipédia'), |
||
fb.link( |
fb.link('subst:bem-vinda', 'BVª', 'Bem-vinda à Wikipédia'), |
||
fb.link( |
fb.link('subst:bv-av', 'av-BV-IP', |
||
'Aviso sobre erro em artigo e boas-vindas para usuário(a) não registrado(a)', |
|||
'Aviso sobre qual artigo?'), |
|||
fb.link( |
fb.link('subst:bv-av-registrado', 'av-BV', |
||
'Aviso sobre erro em artigo e boas-vindas para usuário(a) registrado', |
|||
'Aviso sobre qual artigo?'), |
|||
fb.link( |
fb.link('subst:aviso-ER', 'av-ER', 'Aviso sobre eliminação rápida', |
||
'Qual página foi proposta para eliminação?'), |
|||
fb.link( |
fb.link('subst:av-bv-ER', 'av-BV-ER', |
||
'Aviso sobre eliminação rápida + boas-vindas', |
|||
'Qual página foi proposta para eliminação?'), |
|||
fb.link( |
fb.link('subst:aviso-ESR', 'av-ESR', 'Aviso sobre eliminação semirrápida', |
||
'Qual página foi proposta para eliminação?'), |
|||
fb.link( |
fb.link('subst:aviso-PE', 'av-PE', 'Aviso sobre eliminação por votação', |
||
'Qual página foi proposta para eliminação?'), |
|||
fb.link( |
fb.link('subst:aviso-PE-criador', 'av-PE-criador', 'Aviso ao criador sobre eliminação por votação', |
||
'Qual página foi proposta para eliminação?'), |
|||
fb.link( |
fb.link('subst:bv-propaganda', 'prop-BV', 'Caro editor, por favor não faça' + |
||
' propaganda, [...] Apesar disso, bem-vindo à Wikipédia'), |
|||
fb.link( |
fb.link('subst:propaganda', 'prop', |
||
'Caro editor, por favor não faça propaganda...', |
|||
'Em que página foi feita propaganda?'), |
|||
fb.link( |
fb.link('subst:aviso', 'av', 'Aviso sobre erro em artigo', |
||
'Aviso sobre qual artigo?'), |
|||
fb.link( |
fb.link('subst:aviso2', 'av2', 'Aviso sobre vandalismo', |
||
'Qual página foi vandalizada?'), |
|||
fb.link( |
fb.link('subst:BSRE', 'BSRE', 'Aviso de biografia sem relevo enciclopédico', |
||
'Qual artigo?'), |
|||
fb.link( |
fb.link('subst:cópia', 'cópia', |
||
'Aviso sobre artigo copiado de fonte externa/VDA', |
|||
'Preencha usando \'|2=\' como separador: página da Wikipédia' + |
|||
'|2=url da página copiada'), |
|||
fb.link( |
fb.link('subst:linguagem incorreta', 'linguagem', |
||
'Não insulte nem use linguagem inadequada em artigos ou discussões'), |
|||
fb.link( |
fb.link('subst:ortografia', 'ortografia', 'Não mude a versão da língua'), |
||
fb.link( |
fb.link('subst:mostrar previsão', 'salvamento sucessivo', |
||
'Não faça salvamentos sucessivos, utilize o botão \'Mostrar previsão\'', |
|||
'Em que artigo foram feitos salvamentos sucessivos?'), |
|||
fb.link( |
fb.link('subst:Av-boas vindas', 'aviso-BV', 'Não dê boas-vindas a usuários' + |
||
' que não contribuíram com pelo menos uma edição válida'), |
|||
fb.link( |
fb.link('subst:Av-página de usuário', 'av-PU', 'Considere refazer a página de usuário(a)'), |
||
fb.link( |
fb.link('subst:Aviso/Página pessoal', 'av-PU-outro', |
||
'Não edite páginas de outros usuários', |
|||
'Qual página de outro(a) usuário(a) foi editada?'), |
|||
fb.link( |
fb.link('subst:não remova', 'não remova', |
||
'Não remova marcações de eliminação das páginas', |
|||
'Qual página em que a marcação de eliminação foi removida?'), |
|||
fb.link( |
fb.link('subst:autobiografia', 'autobiografia', 'Não crie autobiografias', |
||
'Qual autobiografia foi criada?') |
|||
].join(' '), |
].join(' '), |
||
/** Submenu [CatScan] **/ |
/** Submenu [CatScan] **/ |
||
Linha 245: | Linha 252: | ||
if (evt == 'ok') { |
if (evt == 'ok') { |
||
if ( option == 'esb' ) { |
if ( option == 'esb' ) { |
||
fb.run( |
fb.run('esboço-' + $( '#fb-esb-input').val()); |
||
} else if ( option == 'ESR' ) { |
} else if ( option == 'ESR' ) { |
||
fb.run( |
fb.run('subst:ESR', $( '#fb-esr-input').val() + ' ~~' + '~~'); |
||
} |
} |
||
} |
} |
||
}; |
}; |
||
/* Patrol the edit currently displayed |
|||
* @param {function()} succes Callback function to be executed after the edit is pattroled |
|||
*/ |
|||
fb.patrolCurrentEdit = function ( success ) { |
|||
$.getJSON( |
|||
mw.util.wikiScript( 'api' ), { |
|||
format: 'json', |
|||
action: 'query', |
|||
list: 'recentchanges', |
|||
rctoken: 'patrol', |
|||
rcprop: '', |
|||
rclimit: '1' |
|||
}, |
|||
function( data ) { |
|||
var query = data.query, |
|||
rc = query && query.recentchanges, |
|||
token = rc && rc[ 0 ] && rc[ 0 ].patroltoken, |
|||
$patrol = mw.util.$content.find('span.patrollink a').first(), |
|||
rcid = mw.util.getParamValue( 'rcid', $patrol.attr('href') || '' ); |
|||
if ( !token ) { |
|||
mw.log( 'Não foi possível obter um token para patrulhar a edição.' ); |
|||
return false; |
|||
} else if ( !rcid ) { |
|||
mw.log( 'Não foi possível identificar a edição a ser patrulhada.' ); |
|||
return false; |
|||
} |
|||
$.post( |
|||
mw.util.wikiScript( 'api' ), { |
|||
action: 'patrol', |
|||
format: 'json', |
|||
token: token, |
|||
rcid: rcid |
|||
}, |
|||
function( data ) { |
|||
if ( data.error ) { |
|||
mw.log( 'Não foi possível patrulhar a edição: ' + data.error.info ); |
|||
return false; |
|||
} else { |
|||
if ( $.isFunction( success ) ){ |
|||
success(); |
|||
} |
|||
mw.log( 'A edição foi marcada como patrulhada.' ); |
|||
return true; |
|||
} |
|||
} |
|||
).error(function() { |
|||
alert( 'Houve um erro inesperado ao usar a API do MediaWiki.' ); |
|||
return false; |
|||
}); |
|||
} |
|||
).error(function() { |
|||
alert( 'A API retornou um erro ao tentar obter um token para patrulhar a edição.' ); |
|||
return false; |
|||
}); |
|||
}; |
|||
/* Função de edição |
/* Função de edição |
||
Linha 260: | Linha 322: | ||
*/ |
*/ |
||
fb.run = function (code, extraText) { |
fb.run = function (code, extraText) { |
||
var textBox = |
var $textBox = $('#wpTextbox1'), |
||
summaries = { |
summaries = { |
||
'subst:VDA': 'Página marcada como [[WP:VDA|VDA]]', |
'subst:VDA': 'Página marcada como [[WP:VDA|VDA]]', |
||
Linha 283: | Linha 345: | ||
return false; |
return false; |
||
} |
} |
||
switch (mw.config.get('wgAction')) { |
|||
case 'view': |
|||
var url = mw.util.wikiGetlink( mw.config.get('wgPageName') ) |
var url = mw.util.wikiGetlink( mw.config.get('wgPageName') ) + '?', |
||
data = { |
|||
+ '?action=edit&fastb=' + encodeURIComponent(code); |
|||
'action': 'edit', |
|||
if (extraText) { |
|||
'fastb': code |
|||
location.href = url + '&fbtxt=' + encodeURIComponent(extraText); |
|||
} |
}; |
||
if( extraText ){ |
|||
location.href = url; |
|||
data.fbtxt = extraText; |
|||
} |
} |
||
fb.patrolCurrentEdit( function(){ |
|||
} else if (mw.config.get('wgAction') == "edit") { |
|||
location.href = url + $.param( data ); |
|||
var value = textBox.value; |
|||
}); |
|||
var summary = " (usando [[Wikipédia:FB|FastButtons]])"; |
|||
break; |
|||
case 'edit': |
|||
var value = $textBox.val(); |
|||
var summary = ' (usando [[Wikipédia:FB|FastButtons]])'; |
|||
if ( value.match(/\{\{(?:ER|ESR2|Usuário\:Salebot\/Impróprio)\|/i) ) { |
if ( value.match(/\{\{(?:ER|ESR2|Usuário\:Salebot\/Impróprio)\|/i) ) { |
||
alert( |
alert('Já existe uma predefinição de eliminação nesta página.'); |
||
return false; |
return false; |
||
} |
} |
||
if (code.indexOf( |
if (code.indexOf('ER') === 0) { |
||
extraText = extraText? '|3=' + extraText: ''; |
|||
extraText = '{' + '{' + code + '|2=~~' + '~~' + extraText + '}}\n\n'; |
|||
$textBox.val( extraText + value ); |
|||
} else { |
|||
extraText = "}}\n\n"; |
|||
} |
|||
extraText = "{" + "{" + code + "|2=~~" + "~~" + extraText; |
|||
textBox.value = extraText + value; |
|||
if (this.salve) { |
if (this.salve) { |
||
document.editform.wpSummary.value = |
document.editform.wpSummary.value = 'Página proposta para' + |
||
' [[WP:ER|eliminação rápida]] (regra ' + |
|||
code.substring(3) + |
code.substring(3) + ')' + summary; |
||
} |
} |
||
} else if (code == |
} else if (code == 'redirect') { |
||
if (mw.config.get('wgNamespaceNumber') == 14) { |
if (mw.config.get('wgNamespaceNumber') == 14) { |
||
if (extraText) { |
if (extraText) { |
||
textBox. |
$textBox.val( '{' + '{redirecionamento de categoria|' + |
||
extraText + |
extraText + '}}' ); |
||
} |
} |
||
if (this.salve) { |
if (this.salve) { |
||
document.editform.wpSummary.value = |
document.editform.wpSummary.value = 'Redirecionando para' + |
||
' a [[categoria:' + extraText + ']]' + summary; |
|||
} |
} |
||
} else { |
} else { |
||
if (extraText) { |
if (extraText) { |
||
textBox. |
$textBox.val( '#Redirecionamento [[' + extraText + ']]' ); |
||
} |
} |
||
} |
} |
||
} else { |
} else { |
||
extraText = extraText? '|1=' + extraText: ''; |
|||
extraText = '{' + '{' + code + extraText + '}}'; |
|||
if (code.indexOf("|") > -1) { |
|||
extraText = "|1=" + extraText + "}}"; |
|||
} else { |
|||
extraText = "|1=" + extraText + "}}"; |
|||
} |
|||
} else { |
|||
extraText = "}}"; |
|||
} |
|||
extraText = "{{" + code + extraText; |
|||
if (mw.config.get('wgNamespaceNumber') == 3) { |
if (mw.config.get('wgNamespaceNumber') == 3) { |
||
value += |
value += '\n\n' + extraText + ' ~~' + '~~'; |
||
} else if (code == |
} else if (code == 'mínimo' || code.indexOf('esboço') === 0) { |
||
if (value.match(/\n\n\[\[/)) { |
if (value.match(/\n\n\[\[/)) { |
||
value = value.substring(0, value.search(/\n\n\[\[/)) + |
value = value.substring(0, value.search(/\n\n\[\[/)) + '\n\n' + |
||
extraText + value.substring(value.search(/\n\n\[\[/)); |
extraText + value.substring(value.search(/\n\n\[\[/)); |
||
} else { |
} else { |
||
value += |
value += '\n\n' + extraText; |
||
} |
} |
||
this.salve = (code == |
this.salve = (code == 'mínimo') ? |
||
'Página marcada como [[WP:M|mínimo]]' : |
|||
'Página marcada como [[WP:EBC|esboço]]'; |
|||
} else if ($.inArray( code, [ 'subst:VDA' , 'subst:matrad' ]) > -1) { |
} else if ($.inArray( code, [ 'subst:VDA' , 'subst:matrad' ]) > -1) { |
||
value = extraText; |
value = extraText; |
||
} else { |
} else { |
||
value = extraText + |
value = extraText + '\n\n' + value; |
||
} |
} |
||
textBox.value |
$textBox.val(value ); |
||
if (this.salve) { |
if (this.salve) { |
||
if (mw.config.get('wgNamespaceNumber') == 3) { |
if (mw.config.get('wgNamespaceNumber') == 3) { |
||
Linha 370: | Linha 426: | ||
document.editform.submit(); |
document.editform.submit(); |
||
} |
} |
||
break; |
|||
} |
} |
||
}; |
}; |
||
var esb, |
|||
esbText = "", |
|||
esbText2 = ""; |
|||
/* Callback function for API calls |
/* Callback function for API calls |
||
Linha 383: | Linha 436: | ||
var user, |
var user, |
||
that = this, |
that = this, |
||
esb, |
|||
apiParams = { |
apiParams = { |
||
'esb': { |
'esb': { |
||
Linha 423: | Linha 477: | ||
}; |
}; |
||
if ( 'esb' == code ) { |
if ( 'esb' == code ) { |
||
esb = |
esb = $( '#fb-esb-input' ).val(); |
||
if ( $.inArray( esb |
if ( $.inArray( esb, [ esbText, esbText2 ] ) !== -1 ) { |
||
return; |
return; |
||
} |
} |
||
esbText = esb |
esbText = esb; |
||
if (esbText == esb |
if (esbText == esb.substr(0, (esb.length - 1))) { |
||
return; |
return; |
||
} |
} |
||
apiParams.esb.apprefix = 'Esboço-' + esb |
apiParams.esb.apprefix = 'Esboço-' + esb; |
||
} |
} |
||
apiParams[ code ].format = 'json'; |
apiParams[ code ].format = 'json'; |
||
Linha 464: | Linha 518: | ||
'<span class="fb-missing" title="Esta página ainda não possui referências">ref</span>'; |
'<span class="fb-missing" title="Esta página ainda não possui referências">ref</span>'; |
||
var catLine = document.getElementById( 'mw-normal-catlinks' ); |
var catLine = document.getElementById( 'mw-normal-catlinks' ); |
||
// FIXME: |
// FIXME: Não usar 'screen scraping' para obter esta informação! |
||
if (catLine && catLine.innerHTML.indexOf( '><a href="' + mw.config.get('wgArticlePath').replace('$1', '')) > -1) { |
if (catLine && catLine.innerHTML.indexOf( '><a href="' + mw.config.get('wgArticlePath').replace('$1', '')) > -1) { |
||
info += ' · cat'; |
info += ' · cat'; |
||
Linha 501: | Linha 555: | ||
); |
); |
||
} else { |
} else { |
||
var hiddenCats = document.getElementById( |
var hiddenCats = document.getElementById('mw-hidden-catlinks'); |
||
if (hiddenCats) { |
if (hiddenCats) { |
||
hiddenCats = hiddenCats.innerHTML; |
hiddenCats = hiddenCats.innerHTML; |
||
if (hiddenCats.indexOf( |
if (hiddenCats.indexOf('!Artigos de qualidade') > -1) { |
||
hiddenCats = hiddenCats.substr(hiddenCats.indexOf( |
hiddenCats = hiddenCats.substr(hiddenCats.indexOf('!Artigos de qualidade') + 22, 1); |
||
if (hiddenCats == |
if (hiddenCats == 'd') { |
||
hiddenCats = |
hiddenCats = '?'; |
||
} |
} |
||
this.$submenu.html( |
this.$submenu.html( |
||
this.$submenu.html() + |
this.$submenu.html() + '<span title="Qualidade do artigo"> Q-<b>' + |
||
hiddenCats + |
hiddenCats + '</b></span>' |
||
); |
); |
||
} |
} |
||
Linha 686: | Linha 740: | ||
'title="Abrir a contagem de edições deste editor"' + |
'title="Abrir a contagem de edições deste editor"' + |
||
' href="http://toolserver.org/~river/cgi-bin/count_edits?user=' + |
' href="http://toolserver.org/~river/cgi-bin/count_edits?user=' + |
||
encUser + '&dbname= |
encUser + '&dbname=' + mw.config.get('wgDBname') + '_p">contador de edições</a></span>' |
||
].join( ' ' ) |
].join( ' ' ) |
||
); |
); |
||
Linha 709: | Linha 763: | ||
&& mw.config.get('wgTitle').indexOf(mw.config.get('wgUserName')) === 0; |
&& mw.config.get('wgTitle').indexOf(mw.config.get('wgUserName')) === 0; |
||
if (inUserNS) { |
if (inUserNS) { |
||
fb.$menu.html( fb.link( |
fb.$menu.html( fb.link('ER|1', 'ER1', 'Marcar subpágina do próprio usuário para eliminação') ); |
||
} else { |
} else { |
||
// FIXME: Usar jQuery em vez de onClick, para melhor compatiblidade ([[mw:RL/MGU#Event_binding]]) |
|||
fb.$menu.html( '<a class="fb-button fb-menu-button" title="Exibir regras' + |
fb.$menu.html( '<a class="fb-button fb-menu-button" title="Exibir regras' + |
||
' para a eliminação rápida" onClick="fb.$submenu.html(fb.submenu.ER)">ER</a>' ); |
' para a eliminação rápida" onClick="fb.$submenu.html(fb.submenu.ER)">ER</a>' ); |
||
Linha 716: | Linha 771: | ||
} |
} |
||
if ($.inArray(mw.config.get('wgNamespaceNumber'), [0, 102]) !== -1) { |
if ($.inArray(mw.config.get('wgNamespaceNumber'), [0, 102]) !== -1) { |
||
// FIXME: Usar jQuery em vez de onClick, para melhor compatiblidade ([[mw:RL/MGU#Event_binding]]) |
|||
fb.$menu.html( |
fb.$menu.html( |
||
fb.$menu.html() + [ |
fb.$menu.html() + [ |
||
Linha 748: | Linha 804: | ||
if ($.inArray(mw.config.get('wgNamespaceNumber'), [2, 10]) !== -1) { |
if ($.inArray(mw.config.get('wgNamespaceNumber'), [2, 10]) !== -1) { |
||
fb.$menu.html( |
fb.$menu.html( |
||
fb.$menu.html() + fb.link( |
fb.$menu.html() + fb.link('subst:apagar', 'PE', |
||
'Marcar para eliminação por votação') |
|||
); |
); |
||
} |
} |
||
if (mw.config.get('wgNamespaceNumber') % 2 === 0) { |
if (mw.config.get('wgNamespaceNumber') % 2 === 0) { |
||
fb.$menu.html( |
fb.$menu.html( |
||
fb.$menu.html() + fb.link( |
fb.$menu.html() + fb.link('redirect', '#R', 'Redirecionar para outro título', |
||
'Redirecionar para qual página?') |
|||
); |
); |
||
} |
} |
||
if (mw.config.get('wgNamespaceNumber') === 14) { |
if (mw.config.get('wgNamespaceNumber') === 14) { |
||
// FIXME: Usar jQuery em vez de onClick, para melhor compatiblidade ([[mw:RL/MGU#Event_binding]]) |
|||
fb.$menu.html( |
fb.$menu.html( |
||
fb.$menu.html() + '<a class="fb-button fb-menu-button"' + |
fb.$menu.html() + '<a class="fb-button fb-menu-button"' + |
||
Linha 767: | Linha 824: | ||
} |
} |
||
if (mw.config.get('wgNamespaceNumber') === 3) { |
if (mw.config.get('wgNamespaceNumber') === 3) { |
||
// FIXME: Usar jQuery em vez de onClick, para melhor compatiblidade ([[mw:RL/MGU#Event_binding]]) |
|||
fb.$menu.html( |
fb.$menu.html( |
||
fb.$menu.html() + '<a class="fb-button fb-menu-button"' + |
fb.$menu.html() + '<a class="fb-button fb-menu-button"' + |
||
Linha 774: | Linha 832: | ||
} |
} |
||
if ($.inArray(mw.config.get('wgNamespaceNumber'), [2, 3]) !== -1) { |
if ($.inArray(mw.config.get('wgNamespaceNumber'), [2, 3]) !== -1) { |
||
// FIXME: Usar jQuery em vez de onClick, para melhor compatiblidade ([[mw:RL/MGU#Event_binding]]) |
|||
fb.$menu.html( |
fb.$menu.html( |
||
fb.$menu.html() + '<a class="fb-button fb-menu-button" title="Exibir informações sobre esta conta"' + |
fb.$menu.html() + '<a class="fb-button fb-menu-button" title="Exibir informações sobre esta conta"' + |
||
Linha 780: | Linha 839: | ||
} |
} |
||
} |
} |
||
// FIXME: Usar jQuery em vez de onClick, para melhor compatiblidade ([[mw:RL/MGU#Event_binding]]) |
|||
fb.$menu.html( |
fb.$menu.html( |
||
fb.$menu.html() + [ |
fb.$menu.html() + [ |