MediaWiki:Gadget-fastbuttons.js e Ajuda:Página de testes/1: diferenças entre as páginas

Origem: Wikipédia, a enciclopédia livre.
(Diferenças entre páginas)
Conteúdo apagado Conteúdo adicionado
m corr. no botão da {{cópia}}, a pedido do Helder: http://pt.wikipedia.org/w/index.php?diff=26358835&oldid=26326175
 
m Correção de typo no MediaWiki:Gadget-fastbuttons.js e ajuste na formatação de alguns dos botões; Atualização da versão com "version: '~~~~~',"
 
Linha 8: Linha 8:
window.fb = {
window.fb = {
//Replace this string by 5~ before saving:
//Replace this string by 5~ before saving:
version: '17h08min de 6 de agosto de 2011 (UTC)',
version: '23h43min de 8 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'),
Linha 125: Linha 125:
/*** Submenu [ESR] ***/
/*** Submenu [ESR] ***/
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("subst:ESR-bio|1=~~" + "~~", "biografia", "Biografia sem fontes e sem notoriedade")
+ 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")
+ 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\"/>",
+ "<input type=\"button\" onMouseDown='fb.ok(\"ok\", \"ESR\")' value=\"OK\"/>",
/*** Submenu [esboço] ***/
/*** Submenu [esboço] ***/
Linha 163: Linha 163:
/*** Submenu [busca] ***/
/*** Submenu [busca] ***/
search: [
search: [
'<span class="plainlinks"><a href="http://www.google.com/search?&as_eq=wikipedia&as_epq="',
'<span class="plainlinks"><a href="http://www.google.com/search?&as_eq=wikipedia&as_epq=',
'" class="external text">Google</a> — <a href="http://news.google.com/archivesearch?&as_src=-newswire+-wire+-presswire+-PR+-press+-release&as_epq=',
'" class="external text">Google</a> — <a href="http://news.google.com/archivesearch?&as_src=-newswire+-wire+-presswire+-PR+-press+-release&as_epq=',
'" class="external text">notícias</a>, <a href="http://books.google.com/books?&as_brr=0&as_epq=',
'" class="external text">notícias</a>, <a href="http://books.google.com/books?&as_brr=0&as_epq=',
Linha 657: Linha 657:
);
);
}
}
this.$submenu.html( pages.join( ' ' ) );
this.$submenu.html( '<div class="horizontal">' + pages.join( ' ' ) + '</div>' );
break;
break;
case 'usu':
case 'usu':

Revisão das 23h43min de 8 de agosto de 2011

/** FastButtons

* @author:  (versão original do script, na Wikipédia em Espanhol)
* @author:  (versão adaptada para a Wikipedia inglesa)
* @author: Outros editores que aparecem no histórico
* @source:  (https://secure.wikimedia.org/wikipedia/en/w/index.php?oldid=230473471)
* @source: 
*/

window.fb = { //Replace this string by 5~ before saving: version: '23h43min de 8 de agosto de 2011 (UTC)', ns: mw.config.get('wgNamespaceNumber'), title: mw.config.get('wgTitle'), catScanUrl: 'http://toolserver.org/~daniel/WikiSense/CategoryIntersect.php' + $.param( { 'wikilang': 'pt', 'wikifam': '.wikipedia.org', 'userlang': 'pt', 'basecat': mw.config.get('wgTitle'), 'basedeep': '1', 'go': 'Examinar', 'format': 'html', 'mode': } ), submenu: {},

$menu: $( '

' ), $submenu: $( '
' )

};

/* Cria os links que ativam a função fb.run()

* @param {string} func
* @param {string} text Text for link
* @param {string} title Title for link
* @param {string=} promptMsg Text for prompt message (optional)
* @return {string} The HTML string of the link
*/

fb.link = function (func, text, title, promptMsg) { if (func.indexOf( 'ER' ) === 0) { func = 'var obs=prompt(\'Se necessário, coloque uma observação.\');' + 'fb.run(\ + func + '\',obs)'; } else if (promptMsg) { func = 'var obs=prompt(\ + promptMsg + '\');fb.run(\ + func + '\',obs)'; } else { func = 'fb.run(\ + func + '\')'; } return '<a class="fb-button fb-action-button" title="' + title + '" onClick="' + func + '">' + text + '</a>'; };

fb.submenu = { /*** Submenu [ER] ***/ ER: 'Regra: 1' + [ fb.link("ER|5", "5", "Aparecimento recorrente (se o conteúdo for igual" + " ao eliminado por votação)"), (($.inArray(fb.ns, [0, 102]) !== -1) ? fb.link('ER|6', '6', 'Título é spam') : '6'), fb.link("ER|7", "7", "Próprio criador reconhece que se enganou"), (($.inArray('sysop', mw.config.get('wgUserGroups')) > -1) ? fb.link("ER|8", "8", "Eliminações temporárias sem perda de histórico" + " para resolver problemas técnicos") : '8'), fb.link("ER|9", "9", "Eliminar redirect, página sem histórico relevante" + " (mover página redirecionada para cá)"), ((fb.ns === 0) ? fb.link("ER|10", "10", "Namespaces que não existem (WikipÉdia, AjUda)") : '10' ), fb.link("ER|11", "11", "Má configuração do teclado (Página," + " Usuário:Sicrano)"), (fb.ns == 6) ? fb.link("ER|12", "12", "Imagens, somente por quem a carregou") : '12', ($.inArray(fb.ns, [0, 102]) !== -1) ? 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.") : '13', (fb.ns == 6) ? fb.link("ER|14", "14", "Ficheiros (arquivos) duplicados") : '14', fb.link("ER|17", "17", "Salto de domínio"), (fb.ns == 1) ? fb.link("ER|18", "18", "Discussão cujos artigos não existem") : '18', (fb.ns == 6) ? fb.link("ER|19", "19", "Ficheiros (domínio Ficheiro:) que não são som," + " imagem ou vídeo") : '19', fb.link("ER|20", "20", "Impróprio"), (mw.config.get('wgPageName').indexOf("Wikipédia:Páginas_para_eliminar/") === 0) ? fb.link("ER|21", "21", "Página de eliminação de um artigo antes de" + " passados 6 meses da última votação") : '21', ($.inArray(fb.ns, [0, 102]) !== -1) ? 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.") : 'A1', (fb.ns == 14) ? fb.link("ER|C1", "C1", "Categorias vazias, desnecessárias ou substituídas") : 'C1', (fb.ns % 2 == 1) ? fb.link("ER|D1", "D1", "Discussões de páginas inexistentes") : 'D1', (fb.ns % 2 == 1) ? fb.link("ER|D2", "D2", "Discussões de páginas para eliminação ou com" + " histórico irrelevante") : 'D2', ($.inArray(fb.ns, [2, 3]) !== -1) ? fb.link("ER|U1", "U1", "Uso impróprio da página de usuário") : 'U1', (fb.ns == 2) ? fb.link("ER|U2", "U2", "PU criada por outro usuário") : 'U2', (fb.ns == 10) ? fb.link("ER|P1", "P1", "Predefinições vazias, desnecessárias ou" + " substituídas") : 'P1', fb.link("ER|R1", "R1", "Redirecionamento indevido, desnecessário, sem" + " afluentes, para páginas inexistente ou eliminadas"), (fb.ns % 2 == 1) ? fb.link("ER|R2", "R2", "Redirecionamento de página de discussão") : 'R2' ].join(' '), /*** Submenu [ESR] ***/ ESR: fb.link("subst:ESR-banda|1=~~" + "~~", "banda", "Artigo sobre banda sem fontes e sem notoriedade") + 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/>" + "<input type=\"button\" onMouseDown='fb.ok(\"ok\", \"ESR\")' value=\"OK\"/>", /*** Submenu [esboço] ***/ esb: fb.link("mínimo", "mínimo", "Artigo com apenas uma frase") + " " + fb.link("esboço", "esboço", "Artigo ainda pouco desenvolvido") + " esboço-" + "<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] ***/ man: [ fb.link("subst:wkf", "wikificar", "Não está formatado de acordo com o livro" + " de estilo"), fb.link("subst:s-fontes", "sem fontes", "Página não cita nenhuma fonte ou" + " referência"), fb.link("sem cat", "sem cat", "Página não está em nenhuma categoria"), fb.link("subst:rec", "reciclagem", "Página precisa ser reciclada de acordo" + " com o livro de estilo"), fb.link("parcial", "parcial", "Artigo possui passagens que não respeitam o" + " princípio da imparcialidade"), fb.link("subst:ctx", "contexto", "Página carece de contexto"), fb.link("controverso|artigo", "controverso", "controverso devido às disputas" + " sobre o seu conteúdo"), fb.link("subst:f-referências", "formatar referências", "Artigo contém" + " referências que necessitam de formatação"), fb.link("subst:m-notas", "mais notas", "Página cita fontes fiáveis, mas não" + " cobre todo o texto"), 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("subst:s-fontes-bpv", "bpv sem fontes", "Biografia de pessoa viva" + " que não cita nenhuma fonte"), fb.link("subst:fpr", "fonte primária", "Artigo necessita de fontes" + " secundárias fiáveis publicadas por terceiros") ].join(' '), /*** Submenu [busca] ***/ search: [ '<a href="http://www.google.com/search?&as_eq=wikipedia&as_epq=', '" class="external text">Google</a> — <a href="http://news.google.com/archivesearch?&as_src=-newswire+-wire+-presswire+-PR+-press+-release&as_epq=', '" class="external text">notícias</a>, <a href="http://books.google.com/books?&as_brr=0&as_epq=', '" class="external text">livros</a>, <a href="http://scholar.google.com/scholar?as_epq=', '" class="external text">acadêmico</a> — <a href="http://www.scirus.com/srsapp/search?q=', '&t=all&sort=0&g=s" class="external text">Scirus</a>' ].join( encodeURIComponent( ( fb.title.indexOf( ' ' ) > -1 ) ? '"' + fb.title + '"': fb.title ) ),

/*** Submenu [aviso] ***/ warn: [fb.link("subst:bem-vindo IP", "BV-IP", "Boas-vindas para usuário(a) não registrado(a)"), fb.link("subst:bem-vindo", "BV", "Bem-vindo(a) à Wikipédia"), fb.link("subst:bem-vinda", "BVª", "Bem-vinda à Wikipédia"), 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("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("subst:aviso-ER", "av-ER", "Aviso sobre eliminação rápida", "Qual página foi proposta para eliminação?"), 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("subst:aviso-ESR", "av-ESR", "Aviso sobre eliminação semirrápida", "Qual página foi proposta para eliminação?"), fb.link("subst:aviso-PE", "av-PE", "Aviso sobre eliminação por votação", "Qual página foi proposta para eliminação?"), 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("subst:bv-propaganda", "prop-BV", "Caro editor, por favor não faça" + " propaganda, [...] Apesar disso, bem-vindo à Wikipédia"), fb.link("subst:propaganda", "prop", "Caro editor, por favor não faça propaganda...", "Em que página foi feita propaganda?"), fb.link("subst:aviso", "av", "Aviso sobre erro em artigo", "Aviso sobre qual artigo?"), fb.link("subst:aviso2", "av2", "Aviso sobre vandalismo", "Qual página foi vandalizada?"), fb.link("subst:BSRE", "BSRE", "Aviso de biografia sem relevo enciclopédico", "Qual artigo?"), 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("subst:linguagem incorreta", "linguagem", "Não insulte nem use linguagem inadequada em artigos ou discussões"), fb.link("subst:ortografia", "ortografia", "Não mude a versão da língua"), 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("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("subst:Av-página de usuário", "av-PU", "Considere refazer a página de usuário(a)"), 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("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("subst:autobiografia", "autobiografia", "Não crie autobiografias", "Qual autobiografia foi criada?") ].join(' '), /** Submenu [CatScan] **/ cat: 'Procurar nesta categoria: ' + [ '<a class="fb-button" href="' + fb.catScanUrl + 'ts&templates=Sem-fontes">sem fontes</a>', '<a class="fb-button" href="' + fb.catScanUrl + 'ts&templates=Revis%C3%A3o&go=">revisão</a>', '<a class="fb-button" href="' + fb.catScanUrl + 'ts&templates=Wikifica%C3%A7%C3%A3o&go=">wikificação</a>', '<a class="fb-button" href="' + fb.catScanUrl + 'ss&size=1000&stubop=or&links=4&go=">menos de 1 000 bytes ou 4 links</a>', '<a class="fb-button" href="' + fb.catScanUrl + 'ss&size=500&stubop=or&links=2&go=">menos de 500 bytes ou 2 links</a>' ].join(' ') };

// TODO: Consider using jQuery: $('#target').keypress() fb.ok = function( evt, option ) { if (window.event && window.event.keyCode == 13) { evt = 'ok'; } else if (evt && evt.which == 13) { evt = 'ok'; } if (evt == 'ok') { if ( option == 'esb' ) { fb.run("esboço-" + document.getElementById( 'fb-esb-input' ).value); } else if ( option == 'ESR' ) { fb.run("subst:ESR", document.getElementById( 'fb-esr-input' ).value + " ~~" + "~~"); } } };


/* Função de edição

* @param: {string} code A template name, possibly preceded by "subst:",
*                         and optionally followed by "|" and some parameter(s)
* @param: {(string|null)=} extraText Extra text for templates and redirects (optional)
* @return: {boolean} Returns false if the user canceled or the page already has a template
*/

fb.run = function (code, extraText) { var textBox = document.getElementById("wpTextbox1"), summaries = { 'subst:VDA': 'Página marcada como VDA', 'subst:apagar': 'Página proposta para [[Wikipedia:Eliminação' + ' por votação|eliminação por votação]]', 'subst:s-fontes': 'Página marcada como sem fontes', 'subst:wkf': 'Página marcada para wikificação', 'subst:rec': 'Página marcada para reciclagem', 'parcial': 'Página marcada como parcial', 'subst:ctx': 'Página marcada como sem contexto', 'controverso|artigo': 'Marcado como controverso', 'subst:f-referências': 'Marcado que existem referências sem formatação', 'subst:m-notas': 'Marcado que carece de mais fontes', 'subst:s-notas': 'Página marcada como sem notas', 'subst:s-fontes-bpv': 'Marcado como biografia de pessoa' + ' viva sem fontes', 'subst:fpr': 'Página marcada como sem fontes secundárias fiáveis', 'subst:ESR': 'Página proposta para eliminação semirrápida' }; if (extraText === null) { // Do nothing if the user canceled the prompt box return false; } if (mw.config.get('wgAction') == 'view') { var url = mw.util.wikiGetlink( mw.config.get('wgPageName') ) + '?action=edit&fastb=' + encodeURIComponent(code); if (extraText) { location.href = url + '&fbtxt=' + encodeURIComponent(extraText); } else { location.href = url; } } else if (mw.config.get('wgAction') == "edit") { var value = textBox.value; var summary = " (usando FastButtons)"; if ( value.match(/\{\{(?:ER|ESR2|Usuário\:Salebot\/Impróprio)\|/i) ) { alert("Já existe uma predefinição de eliminação nesta página."); return false; } if (code.indexOf("ER") === 0) { if (extraText) { extraText = "|3=" + extraText + "}}\n\n"; } else { extraText = "}}\n\n"; } extraText = "{" + "{" + code + "|2=~~" + "~~" + extraText; textBox.value = extraText + value; if (this.salve) { document.editform.wpSummary.value = "Página proposta para" + " eliminação rápida (regra " + code.substring(3) + ")" + summary; } } else if (code == "redirect") { if (mw.config.get('wgNamespaceNumber') == 14) { if (extraText) { textBox.value = "{" + "{redirecionamento de categoria|" + extraText + "}}"; } if (this.salve) { document.editform.wpSummary.value = "Redirecionando para" + " a " + summary; } } else { if (extraText) { textBox.value = "#Redirecionamento " + extraText + ""; } } } else { if (extraText) { if (code.indexOf("|") > -1) { extraText = "|1=" + extraText + "}}"; } else { extraText = "|1=" + extraText + "}}"; } } else { extraText = "}}"; } extraText = "{{" + code + extraText; if (mw.config.get('wgNamespaceNumber') == 3) { value += "\n\n" + extraText + " ~~" + "~~"; } else if (code == "mínimo" || code.indexOf("esboço") === 0) { if (value.match(/\n\n\[\[/)) { value = value.substring(0, value.search(/\n\n\[\[/)) + "\n\n" + extraText + value.substring(value.search(/\n\n\[\[/)); } else { value += "\n\n" + extraText; } this.salve = (code == "mínimo") ? "Página marcada como mínimo" : "Página marcada como esboço"; } else if ($.inArray( code, [ 'subst:VDA' , 'subst:matrad' ]) > -1) { value = extraText; } else { value = extraText + "\n\n" + value; } textBox.value = value; if (this.salve) { if (mw.config.get('wgNamespaceNumber') == 3) { this.salve = 'Adicionando aviso'; } else { if ( code.indexOf( 'subst:ESR' ) === 0 ) { code = 'subst:ESR'; } this.salve = summaries[ code ] || 'Adicionando marcação'; } document.editform.wpSummary.value = this.salve + summary; } } if (this.salve) { document.editform.submit(); } } };

var esb, esbText = "", esbText2 = "";

/* Callback function for API calls

* @param {string} code An abreviation such as "esb", "afl", "PV",
*/

fb.callAPI = function ( code ) { var user, that = this, apiParams = { 'esb': { 'list': 'allpages', 'aplimit': '1', 'apnamespace': '10' }, 'afl': { 'list': 'backlinks', 'bllimit': '1', 'blfilterredir': 'nonredirects', 'blnamespace': '0', 'bltitle': mw.config.get('wgPageName') }, 'PV': { 'list': 'watchlist', 'wlprop': 'user|comment|title|sizes', 'wlexcludeuser': mw.config.get('wgUserName') }, 'PN': { 'list': 'recentchanges', 'rctype': 'new', 'rcnamespace': '0', 'rcshow': '!patrolled', 'rcprop': 'user|comment|title|sizes|ids' }, 'MR': { 'list': 'recentchanges', 'rctype': 'edit', 'rcnamespace': '0', 'rcshow': 'anon', 'rcprop': 'user|comment|title|sizes' }, 'usu': { 'list': 'allusers', 'aulimit': '1', 'auprop': 'editcount|registration', 'aufrom': mw.config.get('wgTitle').split('/')[0] } }; if ( 'esb' == code ) { esb = document.getElementById( 'fb-esb-input' ); if ( $.inArray( esb.value, [ esbText, esbText2 ] ) !== -1 ) { return; } esbText = esb.value; if (esbText == esb.value.substr(0, (esb.value.length - 1))) { return; } apiParams.esb.apprefix = 'Esboço-' + esb.value; } apiParams[ code ].format = 'json'; apiParams[ code ].action = 'query'; $.getJSON( mw.util.wikiScript( 'api' ), apiParams[ code ], function( data ) { that.processAPI( code, data ); } ); };

/* Callback function for API calls

* @param {string} code An abreviation such as "esb", "afl", "PV",
* @param {Object} data JSON content returned by API
*/

fb.processAPI = function (code, data) { var i, title, length, comment, user, query = data && data.query, pages = [], charnum = 0, that = this;

/** Processamento da resposta do API **/ switch ( code ) { case 'afl': var backlinks, info = '('; info += (document.getElementById('Refer.C3.AAncias') || document.getElementById('Notas_e_refer.C3.AAncias')) ? 'ref' : 'ref'; var catLine = document.getElementById( 'mw-normal-catlinks' ); // FIXME: Do not do screen scraping to get this info! if (catLine && catLine.innerHTML.indexOf( '><a href="' + mw.config.get('wgArticlePath').replace('$1', )) > -1) { info += ' · cat'; } else { info += ' · cat'; } info += (document.getElementById( 'p-lang' )) ? ' · iw' : ' · iw';

// Afluentes backlinks = query && query.backlinks; if ( !backlinks ) { mw.log( 'The backlinks query returned no data.' ); } else if ( backlinks.length ) { info += ' · <a href="' + mw.util.wikiGetlink( 'Especial:Páginas afluentes/' + mw.config.get('wgPageName') ) + '" title="afluentes">afl</a>)'; } else { info += ' · afl)'; } this.$submenu.html( info ); if ( document.getElementById( 'ca-talk' ).className != 'new' ) { $.getJSON( mw.util.wikiScript( 'api' ), { 'format': 'json', 'action': 'query', 'prop': 'categories', 'indexpageids': '1', 'titles': mw.config.get('wgFormattedNamespaces')[ mw.config.get('wgNamespaceNumber') + 1 ] + ':' + mw.config.get('wgTitle') }, function( data ) { that.processAPI( 'qualidade', data ); } ); } else { var hiddenCats = document.getElementById("mw-hidden-catlinks"); if (hiddenCats) { hiddenCats = hiddenCats.innerHTML; if (hiddenCats.indexOf("!Artigos de qualidade") > -1) { hiddenCats = hiddenCats.substr(hiddenCats.indexOf("!Artigos de qualidade") + 22, 1); if (hiddenCats == "d") { hiddenCats = "?"; } this.$submenu.html( this.$submenu.html() + " Q-" + hiddenCats + "" ); } } } break; case 'qualidade': var cats, cat, pageids, quality; if ( query ) { cats = query.pages; pageids = query.pageids; if ( cats && pageids && pageids.length ) { cats = cats[ pageids[0] ].categories; if ( !cats ){ mw.log( 'The categories query returned incomplete data.' ); return false; } } else { mw.log( 'The categories query returned incomplete data.' ); return false; } } else { mw.log( 'The categories query returned no data.' ); return false; } // Qualidade do artigo for (i = 0; i < cats.length; i++) { cat = cats[i].title; if ( cat && cat.indexOf( '!Artigos de qualidade' ) > -1 ){ // Categoria:!Artigos de qualidade 1 sobre ... // ^ quality = cat.substr( 32, 1 ); if (quality == 'd') { quality = '?'; } this.$submenu.html( this.$submenu.html() + ' Q-' + quality + '' ); break; } } break; case 'esb': var template, esb = document.getElementById( 'fb-esb-input' ); if ( query ) { template = query.allpages && query.allpages[0] && query.allpages[0].title; if ( !template ) { mw.log( 'The categories query returned incomplete data.' ); return false; } template = template.replace( /^Predefinição:Esboço-/gi, ); } else { mw.log( 'The categories query returned no data.' ); return false; } if ((esb.setSelectionRange || esb.createTextRange || typeof (esb.selectionStart) != 'undefined' && typeof (esb.selectionEnd) != 'undefined' ) && esb.value == template.substr(0, esb.value.length) ) { // Exibe sugestões. Baseado no script do HotCat var start = esb.value.length; esb.value = template; esbText2 = template; if (esb.setSelectionRange) { esb.setSelectionRange(start, template.length); } else if (esb.createTextRange) { var sel = esb.createTextRange(); sel.move( 'character', start ); sel.moveEnd( 'character', template.length - start ); sel.select(); } else { esb.selectionStart = start; esb.selectionEnd = template.length; } } break; case 'PN': case 'MR': // Mudanças recentes case 'PV': // Páginas vigiadas var item, j, listName = { 'PV': 'watchlist', 'MR': 'recentchanges', 'PN': 'recentchanges' }, summaryChanges = { 'PV' : [ [ '', ], [ '/*', '→' ], [ '*/', ':' ] ], 'MR' : [ [ '/*', '→' ], [ '*/', ':' ] ], 'PN' : [ [ '? ', ] ] }, urlParam = { 'PV': 'diff=last', 'MR': 'diff=last', 'PN': 'redirect=no&rcid=' }, list = query[ listName[ code ] ], max = ( list.length < 10 )? list.length : 10;

for ( i = 0; i < max; i++ ) { item = list[ i ]; if ( !item ){ continue; } title = item.title; charnum += title.length; if (charnum > 180) { break; } length = item.newlen - item.oldlen; if (length > 0) { length = '+' + length; } comment = item.comment || ; for ( j=0; j < summaryChanges[ code ].length; j++ ){ comment = comment.replace( summaryChanges[ code ][0], summaryChanges[ code ][1] ); } if (comment) { comment = '(' + comment + ')'; } if ( code === 'PN' ){ urlParam[ code ] += item.rcid; } pages.push( '<a href="' + mw.util.wikiGetlink( title ) + '?' + urlParam[ code ] + '" title="(' + length + ') ' + item.user + ' ' + comment + '">' + title + '</a>' ); }

this.$submenu.html( '
' + pages.join( ' ' ) + '
' );

break; case 'usu': // Informações do(a) usuário(a) if ( !query ) { mw.log( 'The categories query returned no data.' ); return false; } user = query.allusers && query.allusers[0]; if ( user ) { // Ex.: YYYY-MM-DDThh:mm:ssZ var regDate = user.registration; regDate = regDate.substr(8, 2) + '/' + regDate.substr(5, 2) + '/' + regDate.substr(0, 4); var encUser = encodeURI( user.name ); this.$submenu.html( [ user.editcount + ' edições desde ' + regDate + '.', '<a class="fb-button" href="' + mw.util.wikiGetlink( 'Especial:Contribuições/' ) + encUser + '" title="Abrir a lista de contribuições deste editor" >contribuições</a>', '<a class="fb-button" href="' + mw.util.wikiGetlink( 'Especial:Registo/' ) + encUser + '" title="Abrir a lista de registros deste editor" >registros</a>', '<a class="fb-button" href="' + mw.util.wikiGetlink( 'Especial:Registo' ) + '?type=block&page=User%3A' + encUser + '" title="Abrir a lista de registros de bloqueio deste editor">registros de bloqueio</a>', '<a class="external text fb-button"' + 'title="Abrir a contagem de edições deste editor"' + ' href="http://toolserver.org/~river/cgi-bin/count_edits?user=' + encUser + '&dbname=ptwiki_p">contador de edições</a>' ].join( ' ' ) ); } else { return; } break; } };

/* Initialize the gadget */ fb.init = function () { var inUserNS, $contentSub = $( '#contentSub' ), param = mw.util.getParamValue('fastb'); fb.$menu.attr( 'id', 'fb-menu' ); fb.$submenu.attr( 'id', 'fb-submenu' ); if ($.inArray(mw.config.get('wgAction'), ['view', 'edit']) !== -1) { fb.$submenu.html( ); /*** Menu Principal ***/ if (mw.config.get('wgNamespaceNumber') > -1) { inUserNS = $.inArray(mw.config.get('wgNamespaceNumber'), [2, 3]) > -1 && mw.config.get('wgTitle').indexOf(mw.config.get('wgUserName')) === 0; if (inUserNS) { fb.$menu.html( fb.link("ER|1", "ER1", "Marcar subpágina do próprio usuário para eliminação") ); } else { 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>' ); } } if ($.inArray(mw.config.get('wgNamespaceNumber'), [0, 102]) !== -1) { fb.$menu.html( fb.$menu.html() + [ '<a class="fb-button fb-menu-button" title="Exibir regras para a eliminação semi-rápida"' + ' onClick="fb.$submenu.html(fb.submenu.ESR)">ESR</a>', fb.link( 'subst:apagar', 'PE', 'Marcar para eliminação por votação'), '<a class="fb-button fb-action-button"' + ' title="Marcar como cópia ou violação de direito autoral"' + ' onClick="obs=prompt(\'Informe o url da página copiada\',' + ' \'http://\');fb.run(\'subst:VDA\',obs)">VDA</a>', fb.link( 'subst:suspeito', 'susp', 'Marcar como suspeito de violação de direitos autorais'), fb.link( 'subst:matrad', 'trad', 'Marcar esta tradução como sendo de baixa qualidade', 'De qual língua a página foi maltraduzida (ca, de, en, es,' + ' fr, it, ja, nl, no, pl, ru, sv, zh)?' ), fb.link( 'redirect', '#R', 'Redirecionar para outro título', 'Redirecionar para qual página?'), '<a class="fb-button fb-menu-button" title="Exibir predefinições para manutenção"' + ' onClick="fb.$submenu.html(fb.submenu.man)">manutenção</a>', '<a class="fb-button fb-menu-button" title="Exibir predefinições para esboços"' + ' onClick="fb.$submenu.html(fb.submenu.esb)">esboço</a>', '<a class="fb-button fb-menu-button" title="Exibir opções para a busca de fontes"' + ' onClick="fb.$submenu.html(fb.submenu.search)">busca</a>' ].join() ); if (mw.config.get('wgAction') === 'view') { fb.callAPI('afl'); } } else { if ($.inArray(mw.config.get('wgNamespaceNumber'), [2, 10]) !== -1) { fb.$menu.html( fb.$menu.html() + fb.link("subst:apagar", "PE", "Marcar para eliminação por votação") ); } if (mw.config.get('wgNamespaceNumber') % 2 === 0) { fb.$menu.html( fb.$menu.html() + fb.link("redirect", "#R", "Redirecionar para outro título", "Redirecionar para qual página?") ); } if (mw.config.get('wgNamespaceNumber') === 14) { fb.$menu.html( fb.$menu.html() + '<a class="fb-button fb-menu-button"' + ' title="Exibir opções do CatScan para procurar páginas nesta categoria"' + ' onClick="fb.$submenu.html(fb.submenu.cat)">CatScan</a>' ); } } if (mw.config.get('wgNamespaceNumber') === 3) { fb.$menu.html( fb.$menu.html() + '<a class="fb-button fb-menu-button"' + ' title="Exibir lista de predefinições para avisos"' + ' onClick="fb.$submenu.html(fb.submenu.warn)">aviso</a>' ); } if ($.inArray(mw.config.get('wgNamespaceNumber'), [2, 3]) !== -1) { fb.$menu.html( fb.$menu.html() + '<a class="fb-button fb-menu-button" title="Exibir informações sobre esta conta"' + ' onClick="fb.callAPI(\'usu\')">sobre a conta</a>' ); } } fb.$menu.html( fb.$menu.html() + [ '<a class="fb-button fb-menu-button"' + ' title="Exibir páginas vigiadas que foram alteradas recentemente" onClick="fb.callAPI(\'PV\')">PV</a>', '<a class="fb-button fb-menu-button"' + ' title="Exibir páginas novas que ainda não foram patrulhadas"' + ' onClick="fb.callAPI(\'PN\')">PN</a>', '<a class="fb-button fb-menu-button"' + ' title="Exibir mudanças recentes feitas por IPs em páginas do domínio principal"' + ' onClick="fb.callAPI(\'MR\')">MR</a>' ].join() ); $contentSub.append( fb.$menu ).append( fb.$submenu ); switch (mw.config.get('wgAction')) { case 'edit': fb.salve = (param !== null); if (fb.salve) { fb.run(param, mw.util.getParamValue('fbtxt') || ); } break; case 'markpatrolled': if (param !== null) { location.href = mw.util.wikiGetlink( mw.config.get('wgPageName') ) + '?action=edit&fastb=' + param; } break; default: // Não faz nada nas demais ações } mw.loader.using( 'jquery.tipsy', function() { $('#fb-menu, #fb-submenu').find( 'a' ).tipsy(); } ); };

/* Executes the gadget when document is ready */ $( fb.init );