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

(Diferenças entre páginas)
Página 1
Página 2
Conteúdo apagado Conteúdo adicionado
m melhor?
 
m Versão do MediaWiki:Gadget-fastbuttons.js que agrupa as variáveis em um namespace próprio (fb), evitando a poluição do namespace global
 
Linha 6: Linha 6:
* @source: [[es:Special:PrefixIndex/User:Racso/FB]]
* @source: [[es:Special:PrefixIndex/User:Racso/FB]]
*/
*/
window.fb = {
var fbsalve,
fbNS = mw.config.get('wgNamespaceNumber'),
namespace: mw.config.get('wgNamespaceNumber'),
fb1 = document.createElement('div'),
menu: document.createElement('div'),
fb2 = document.createElement('div');
submenu: document.createElement('div')
};


/* Cria os links que ativam a função fb()
/* Cria os links que ativam a função fb.run()
* @param {string} fbf
* @param {string} func
* @param {string} ltxt Text for link
* @param {string} text Text for link
* @param {string} ltit Title for link
* @param {string} title Title for link
* @param {string=} lobs Text for prompt message (optional)
* @param {string=} lobs Text for prompt message (optional)
*/
*/
function fbLink(fbf, ltxt, ltit, lobs) {
fb.link = function (func, text, title, lobs) {
if (fbf.indexOf("ER") === 0) {
if (func.indexOf("ER") === 0) {
fbf = 'var obs=prompt("Se necessário, coloque uma observação.");'
func = 'var obs=prompt("Se necessário, coloque uma observação.");'
+ 'fb("' + fbf + '",obs)';
+ 'fb.run("' + func + '",obs)';
} else if (lobs) {
} else if (lobs) {
fbf = "var obs=prompt(\"" + lobs + "\");fb(\"" + fbf + "\",obs)";
func = "var obs=prompt(\"" + lobs + "\");fb.run(\"" + func + "\",obs)";
} else {
} else {
fbf = "fb(\"" + fbf + "\")";
func = "fb.run(\"" + func + "\")";
}
}
return " <a onMouseOver='this.style.cursor=\"pointer\"' title='"
return " <a onMouseOver='this.style.cursor=\"pointer\"' title='"
+ ltit + "' onClick='" + fbf + "'>" + ltxt + "</a> ";
+ title + "' onClick='" + func + "'>" + text + "</a> ";
}
};


/*** Menu [ER] ***/
/*** Menu [ER] ***/
window.fbEr = "Regra:";
fb.ER = "Regra:";
window.fbEr += " 1 " + [
fb.ER += " 1 " + [
fbLink("ER|5", "5", "Aparecimento recorrente (se o conteúdo for igual" +
fb.link("ER|5", "5", "Aparecimento recorrente (se o conteúdo for igual" +
" ao eliminado por votação)"),
" ao eliminado por votação)"),
(($.inArray(fbNS, [0, 102]) !== -1) ?
(($.inArray(fb.namespace, [0, 102]) !== -1) ?
fbLink("ER|6", "6", "Título é spam") :
fb.link("ER|6", "6", "Título é spam") :
" 6 "),
" 6 "),
fbLink("ER|7", "7", "Próprio criador reconhece que se enganou"),
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) ?
fbLink("ER|8", "8", "Eliminações temporárias sem perda de histórico" +
fb.link("ER|8", "8", "Eliminações temporárias sem perda de histórico" +
" para resolver problemas técnicos") :
" para resolver problemas técnicos") :
" 8 "),
" 8 "),
fbLink("ER|9", "9", "Eliminar redirect, página sem histórico relevante"
fb.link("ER|9", "9", "Eliminar redirect, página sem histórico relevante"
+ " (mover página redirecionada para cá)"),
+ " (mover página redirecionada para cá)"),
((fbNS === 0) ?
((fb.namespace === 0) ?
fbLink("ER|10", "10", "Namespaces que não existem (WikipÉdia, AjUda)") :
fb.link("ER|10", "10", "Namespaces que não existem (WikipÉdia, AjUda)") :
" 10 " ),
" 10 " ),
fbLink("ER|11", "11", "Má configuração do teclado (Página," +
fb.link("ER|11", "11", "Má configuração do teclado (Página," +
" Usuário:Sicrano)"),
" Usuário:Sicrano)"),
(fbNS == 6) ?
(fb.namespace == 6) ?
fbLink("ER|12", "12", "Imagens, somente por quem a carregou") :
fb.link("ER|12", "12", "Imagens, somente por quem a carregou") :
" 12 ",
" 12 ",
($.inArray(fbNS, [0, 102]) !== -1) ?
($.inArray(fb.namespace, [0, 102]) !== -1) ?
fbLink("ER|13", "13", "Páginas sem histórico relevante que são" +
fb.link("ER|13", "13", "Páginas sem histórico relevante que são" +
" violações flagrantes de direitos autorais de outras páginas" +
" violações flagrantes de direitos autorais de outras páginas" +
" na internet.") :
" na internet.") :
" 13 ",
" 13 ",
(fbNS == 6) ?
(fb.namespace == 6) ?
fbLink("ER|14", "14", "Ficheiros (arquivos) duplicados") :
fb.link("ER|14", "14", "Ficheiros (arquivos) duplicados") :
" 14 ",
" 14 ",
fbLink("ER|17", "17", "Salto de domínio"),
fb.link("ER|17", "17", "Salto de domínio"),
(fbNS == 1) ?
(fb.namespace == 1) ?
fbLink("ER|18", "18", "Discussão cujos artigos não existem") :
fb.link("ER|18", "18", "Discussão cujos artigos não existem") :
" 18 ",
" 18 ",
(fbNS == 6) ?
(fb.namespace == 6) ?
fbLink("ER|19", "19", "Ficheiros (domínio Ficheiro:) que não são som," +
fb.link("ER|19", "19", "Ficheiros (domínio Ficheiro:) que não são som," +
" imagem ou vídeo") :
" imagem ou vídeo") :
" 19 ",
" 19 ",
fbLink("ER|20", "20", "Impróprio"),
fb.link("ER|20", "20", "Impróprio"),
(mw.config.get('wgPageName').indexOf("Wikipédia:Páginas_para_eliminar/") === 0) ?
(mw.config.get('wgPageName').indexOf("Wikipédia:Páginas_para_eliminar/") === 0) ?
fbLink("ER|21", "21", "Página de eliminação de um artigo antes de" +
fb.link("ER|21", "21", "Página de eliminação de um artigo antes de" +
" passados 6 meses da última votação") :
" passados 6 meses da última votação") :
" 21 ",
" 21 ",
($.inArray(fbNS, [0, 102]) !== -1) ?
($.inArray(fb.namespace, [0, 102]) !== -1) ?
fbLink("ER|A1", "A1", "Páginas com o título malformatado, absurdo," +
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" +
" 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" +
" do teclado, com codificação incorreta do sistema ou que expressem" +
" domínios que não existem.") :
" domínios que não existem.") :
" A1 ",
" A1 ",
(fbNS == 14) ?
(fb.namespace == 14) ?
fbLink("ER|C1", "C1", "Categorias vazias, desnecessárias ou substituídas") :
fb.link("ER|C1", "C1", "Categorias vazias, desnecessárias ou substituídas") :
" C1 ",
" C1 ",
(fbNS % 2 == 1) ?
(fb.namespace % 2 == 1) ?
fbLink("ER|D1", "D1", "Discussões de páginas inexistentes") :
fb.link("ER|D1", "D1", "Discussões de páginas inexistentes") :
" D1 ",
" D1 ",
(fbNS % 2 == 1) ?
(fb.namespace % 2 == 1) ?
fbLink("ER|D2", "D2", "Discussões de páginas para eliminação ou com" +
fb.link("ER|D2", "D2", "Discussões de páginas para eliminação ou com" +
" histórico irrelevante") :
" histórico irrelevante") :
" D2 ",
" D2 ",
($.inArray(fbNS, [2, 3]) !== -1) ?
($.inArray(fb.namespace, [2, 3]) !== -1) ?
fbLink("ER|U1", "U1", "Uso impróprio da página de usuário") :
fb.link("ER|U1", "U1", "Uso impróprio da página de usuário") :
" U1 ",
" U1 ",
(fbNS == 2) ?
(fb.namespace == 2) ?
fbLink("ER|U2", "U2", "PU criada por outro usuário") :
fb.link("ER|U2", "U2", "PU criada por outro usuário") :
" U2 ",
" U2 ",
(fbNS == 10) ?
(fb.namespace == 10) ?
fbLink("ER|P1", "P1", "Predefinições vazias, desnecessárias ou" +
fb.link("ER|P1", "P1", "Predefinições vazias, desnecessárias ou" +
" substituídas") :
" substituídas") :
" P1 ",
" P1 ",
fbLink("ER|R1", "R1", "Redirecionamento indevido, desnecessário, sem" +
fb.link("ER|R1", "R1", "Redirecionamento indevido, desnecessário, sem" +
" afluentes, para páginas inexistente ou eliminadas"),
" afluentes, para páginas inexistente ou eliminadas"),
(fbNS % 2 == 1) ?
(fb.namespace % 2 == 1) ?
fbLink("ER|R2", "R2", "Redirecionamento de página de discussão") :
fb.link("ER|R2", "R2", "Redirecionamento de página de discussão") :
" R2 "
" R2 "
].join('|');
].join('|');
Linha 109: Linha 110:
/*** Menu [ESR] ***/
/*** Menu [ESR] ***/
// FIXME: Update deprecated attributes to CSS: cellspacing --> border-spacing, valign --> vertical-align
// FIXME: Update deprecated attributes to CSS: cellspacing --> border-spacing, valign --> vertical-align
window.fbEsr = "<table cellspacing=0 style=\"color:#7D7D7D\"><tr><td valign=top>"
fb.ESR = "<table cellspacing=0 style=\"color:#7D7D7D\"><tr><td valign=top>"
+ fbLink("subst:ESR-banda|1=~~" + "~~", "banda", "Artigo sobre banda sem fontes e sem notoriedade")
+ fb.link("subst:ESR-banda|1=~~" + "~~", "banda", "Artigo sobre banda sem fontes e sem notoriedade")
+ "|" + fbLink("subst:ESR-bio|1=~~" + "~~", "biografia", "Biografia sem fontes e sem notoriedade")
+ "|" + fb.link("subst:ESR-bio|1=~~" + "~~", "biografia", "Biografia sem fontes e sem notoriedade")
+ "|" + fbLink("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: </td><td><input type=\"text\" id=\"esrinput\" onKeyPress=\"fbesrok(event)\" size=55/><input type=\"button\" onMouseDown='fbesrok(\"ok\")' value=\"OK\"/></td></tr></table>";
+ "| outra: </td><td><input type=\"text\" id=\"esrinput\" onKeyPress=\"fb.ESRok(event)\" size=55/><input type=\"button\" onMouseDown='fb.ESRok(\"ok\")' value=\"OK\"/></td></tr></table>";


// TODO: Merge with function fbesbok() defined below, possibly using jQuery
// TODO: Merge with function fb.esbOk() defined below, possibly using jQuery
// $('#target').keypress()
// $('#target').keypress()
window.fbesrok = function(evt) {
fb.ESRok = function(evt) {
if (window.event && window.event.keyCode == 13) {
if (window.event && window.event.keyCode == 13) {
evt = "ok";
evt = "ok";
Linha 124: Linha 125:
}
}
if (evt == "ok") {
if (evt == "ok") {
window.fb("subst:ESR", document.getElementById("esrinput").value + " ~~" + "~~");
this.run("subst:ESR", document.getElementById("esrinput").value + " ~~" + "~~");
}
}
};
};


/*** Menu [esboço] ***/
/*** Menu [esboço] ***/
//FIXME: Update deprecated attributes to CSS: cellspacing --> border-spacing, valign --> vertical-align
// FIXME: Update deprecated attributes to CSS: cellspacing --> border-spacing, valign --> vertical-align
window.fbEsb = "<table cellspacing=0 style=\"color:#7D7D7D\">" +
fb.esb = "<table cellspacing=0 style=\"color:#7D7D7D\">" +
"<tr><td valign=top>" +
"<tr><td valign=top>" +
fbLink("mínimo", "mínimo", "Artigo com apenas uma frase") +
fb.link("mínimo", "mínimo", "Artigo com apenas uma frase") +
"|" + fbLink("esboço", "esboço", "Artigo ainda pouco desenvolvido") +
"|" + fb.link("esboço", "esboço", "Artigo ainda pouco desenvolvido") +
"| <span style=\"color:black;\">esboço-</span>" +
"| <span style=\"color:black;\">esboço-</span>" +
"</td><td>" + "<input id=\"esbinput\" onkeyup='fbapi(\"esb\")'" +
"</td><td>" + "<input id=\"esbinput\" onkeyup='fb.api(\"esb\")'" +
" onKeyPress=\"fbesbok(event)\" size=14/>" +
" onKeyPress=\"fb.esbOk(event)\" size=14/>" +
"<input type=\"button\" onMouseDown='fbesbok(\"ok\")' value=\"OK\"/>" +
"<input type=\"button\" onMouseDown='fb.esbOk(\"ok\")' value=\"OK\"/>" +
"</td></tr></table>";
"</td></tr></table>";
var esbtxt = "",
var esbText = "",
esbtxt2 = "";
esbText2 = "";


//TODO: Merge with function fbesrok() defined above, possibly using $('#target').keypress()
//TODO: Merge with function fb.ESRok() defined above, possibly using $('#target').keypress()
window.fbesbok = function (evt) {
fb.esbOk = function (evt) {
if (window.event && window.event.keyCode == 13) {
if (window.event && window.event.keyCode == 13) {
evt = "ok";
evt = "ok";
Linha 150: Linha 151:
}
}
if (evt == "ok") {
if (evt == "ok") {
window.fb("esboço-" + document.getElementById("esbinput").value);
fb.run("esboço-" + document.getElementById("esbinput").value);
}
}
};
};


/*** Menu [manuteção] ***/
/*** Menu [manuteção] ***/
window.fbMan = [
fb.man = [
fbLink("subst:wkf", "wikificar", "Não está formatado de acordo com o livro" +
fb.link("subst:wkf", "wikificar", "Não está formatado de acordo com o livro" +
" de estilo"),
" de estilo"),
fbLink("subst:s-fontes", "sem fontes", "Página não cita nenhuma fonte ou" +
fb.link("subst:s-fontes", "sem fontes", "Página não cita nenhuma fonte ou" +
" referência"),
" referência"),
fbLink("sem cat", "sem cat", "Página não está em nenhuma categoria"),
fb.link("sem cat", "sem cat", "Página não está em nenhuma categoria"),
fbLink("subst:rec", "reciclagem", "Página precisa ser reciclada de acordo" +
fb.link("subst:rec", "reciclagem", "Página precisa ser reciclada de acordo" +
" com o livro de estilo"),
" com o livro de estilo"),
fbLink("parcial", "parcial", "Artigo possui passagens que não respeitam o" +
fb.link("parcial", "parcial", "Artigo possui passagens que não respeitam o" +
" princípio da imparcialidade"),
" princípio da imparcialidade"),
fbLink("subst:ctx", "contexto", "Página carece de contexto"),
fb.link("subst:ctx", "contexto", "Página carece de contexto"),
fbLink("controverso|artigo", "controverso", "controverso devido às disputas" +
fb.link("controverso|artigo", "controverso", "controverso devido às disputas" +
" sobre o seu conteúdo"),
" sobre o seu conteúdo"),
fbLink("subst:f-referências", "formatar referências", "Artigo contém" +
fb.link("subst:f-referências", "formatar referências", "Artigo contém" +
" referências que necessitam de formatação"),
" referências que necessitam de formatação"),
fbLink("subst:m-notas", "mais notas", "Página cita fontes fiáveis, mas não" +
fb.link("subst:m-notas", "mais notas", "Página cita fontes fiáveis, mas não" +
" cobre todo o texto"),
" cobre todo o texto"),
fbLink("subst:s-notas", "sem notas", "Existem fontes no final da página," +
fb.link("subst:s-notas", "sem notas", "Existem fontes no final da página," +
" mas não são citadas no corpo do artigo"),
" mas não são citadas no corpo do artigo"),
fbLink("subst:s-fontes-bpv", "bpv sem fontes", "Biografia de pessoa viva" +
fb.link("subst:s-fontes-bpv", "bpv sem fontes", "Biografia de pessoa viva" +
" que não cita nenhuma fonte"),
" que não cita nenhuma fonte"),
fbLink("subst:fpr", "fonte primária", "Artigo necessita de fontes" +
fb.link("subst:fpr", "fonte primária", "Artigo necessita de fontes" +
" secundárias fiáveis publicadas por terceiros")
" secundárias fiáveis publicadas por terceiros")
].join('|');
].join('|');


/*** Menu [busca] ***/
/*** Menu [busca] ***/
var fbtitulo = mw.config.get('wgTitle');
fb.title = mw.config.get('wgTitle');
if (fbtitulo.indexOf(" ") > -1){
if (fb.title.indexOf(" ") > -1){
fbtitulo = "\"" + fbtitulo + "\"";
fb.title = "\"" + fb.title + "\"";
}
}
fbtitulo = encodeURIComponent(fbtitulo);
fb.title = encodeURIComponent(fb.title);
window.fbbus = "<span class=\"plainlinks\"><a href=\"http://www.google.com/search?&as_eq=wikipedia&as_epq="
fb.search = "<span class=\"plainlinks\"><a href=\"http://www.google.com/search?&as_eq=wikipedia&as_epq="
+ fbtitulo + "\" class=\"external text\">Google</a> — <a href=\"http://news.google.com/archivesearch?&as_src=-newswire+-wire+-presswire+-PR+-press+-release&as_epq="
+ fb.title + "\" class=\"external text\">Google</a> — <a href=\"http://news.google.com/archivesearch?&as_src=-newswire+-wire+-presswire+-PR+-press+-release&as_epq="
+ fbtitulo + "\" class=\"external text\">notícias</a>, <a href=\"http://books.google.com/books?&as_brr=0&as_epq="
+ fb.title + "\" class=\"external text\">notícias</a>, <a href=\"http://books.google.com/books?&as_brr=0&as_epq="
+ fbtitulo + "\" class=\"external text\">livros</a>, <a href=\"http://scholar.google.com/scholar?as_epq="
+ fb.title + "\" class=\"external text\">livros</a>, <a href=\"http://scholar.google.com/scholar?as_epq="
+ fbtitulo + "\" class=\"external text\">acadêmico</a> — <a href=\"http://www.scirus.com/srsapp/search?q="
+ fb.title + "\" class=\"external text\">acadêmico</a> — <a href=\"http://www.scirus.com/srsapp/search?q="
+ fbtitulo + "&t=all&sort=0&g=s\" class=\"external text\">Scirus</a></span>";
+ fb.title + "&t=all&sort=0&g=s\" class=\"external text\">Scirus</a></span>";


/*** Menu [aviso] ***/
/*** Menu [aviso] ***/
window.fbAv = [fbLink("subst:bem-vindo IP", "BV-IP",
fb.warn = [fb.link("subst:bem-vindo IP", "BV-IP",
"Boas-vindas para usuário(a) não registrado(a)"),
"Boas-vindas para usuário(a) não registrado(a)"),
fbLink("subst:bem-vindo", "BV", "Bem-vindo(a) à Wikipédia"),
fb.link("subst:bem-vindo", "BV", "Bem-vindo(a) à Wikipédia"),
fbLink("subst:bem-vinda", "BVª", "Bem-vinda à Wikipédia"),
fb.link("subst:bem-vinda", "BVª", "Bem-vinda à Wikipédia"),
fbLink("subst:bv-av", "av-BV-IP",
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 erro em artigo e boas-vindas para usuário(a) não registrado(a)",
"Aviso sobre qual artigo?"),
"Aviso sobre qual artigo?"),
fbLink("subst:bv-av-registrado", "av-BV",
fb.link("subst:bv-av-registrado", "av-BV",
"Aviso sobre erro em artigo e boas-vindas para usuário(a) registrado",
"Aviso sobre erro em artigo e boas-vindas para usuário(a) registrado",
"Aviso sobre qual artigo?"),
"Aviso sobre qual artigo?"),
fbLink("subst:aviso-ER", "av-ER", "Aviso sobre eliminação rápida",
fb.link("subst:aviso-ER", "av-ER", "Aviso sobre eliminação rápida",
"Qual página foi proposta para eliminação?"),
"Qual página foi proposta para eliminação?"),
fbLink("subst:av-bv-ER", "av-BV-ER",
fb.link("subst:av-bv-ER", "av-BV-ER",
"Aviso sobre eliminação rápida + boas-vindas",
"Aviso sobre eliminação rápida + boas-vindas",
"Qual página foi proposta para eliminação?"),
"Qual página foi proposta para eliminação?"),
fbLink("subst:aviso-ESR", "av-ESR", "Aviso sobre eliminação semirrápida",
fb.link("subst:aviso-ESR", "av-ESR", "Aviso sobre eliminação semirrápida",
"Qual página foi proposta para eliminação?"),
"Qual página foi proposta para eliminação?"),
fbLink("subst:aviso-PE", "av-PE", "Aviso sobre eliminação por votação",
fb.link("subst:aviso-PE", "av-PE", "Aviso sobre eliminação por votação",
"Qual página foi proposta para eliminação?"),
"Qual página foi proposta para eliminação?"),
fbLink("subst:aviso-PE-criador", "av-PE-criador", "Aviso ao criador sobre eliminação por votaçã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?"),
"Qual página foi proposta para eliminação?"),
fbLink("subst:bv-propaganda", "prop-BV", "Caro editor, por favor não faça" +
fb.link("subst:bv-propaganda", "prop-BV", "Caro editor, por favor não faça" +
" propaganda, [...] Apesar disso, bem-vindo à Wikipédia"),
" propaganda, [...] Apesar disso, bem-vindo à Wikipédia"),
fbLink("subst:propaganda", "prop",
fb.link("subst:propaganda", "prop",
"Caro editor, por favor não faça propaganda...",
"Caro editor, por favor não faça propaganda...",
"Em que página foi feita propaganda?"),
"Em que página foi feita propaganda?"),
fbLink("subst:aviso", "av", "Aviso sobre erro em artigo",
fb.link("subst:aviso", "av", "Aviso sobre erro em artigo",
"Aviso sobre qual artigo?"),
"Aviso sobre qual artigo?"),
fbLink("subst:aviso2", "av2", "Aviso sobre vandalismo",
fb.link("subst:aviso2", "av2", "Aviso sobre vandalismo",
"Qual página foi vandalizada?"),
"Qual página foi vandalizada?"),
fbLink("subst:BSRE", "BSRE", "Aviso de biografia sem relevo enciclopédico",
fb.link("subst:BSRE", "BSRE", "Aviso de biografia sem relevo enciclopédico",
"Qual artigo?"),
"Qual artigo?"),
fbLink("subst:cópia", "cópia",
fb.link("subst:cópia", "cópia",
"Aviso sobre artigo copiado de fonte externa/VDA",
"Aviso sobre artigo copiado de fonte externa/VDA",
"Preencha usando \\\"|2=\\\" como separador: página da Wikipédia" +
"Preencha usando \\\"|2=\\\" como separador: página da Wikipédia" +
"|2=url da página copiada"),
"|2=url da página copiada"),
fbLink("subst:linguagem incorreta", "linguagem",
fb.link("subst:linguagem incorreta", "linguagem",
"Não insulte nem use linguagem inadequada em artigos ou discussões"),
"Não insulte nem use linguagem inadequada em artigos ou discussões"),
fbLink("subst:ortografia", "ortografia", "Não mude a versão da língua"),
fb.link("subst:ortografia", "ortografia", "Não mude a versão da língua"),
fbLink("subst:mostrar previsão", "salvamento sucessivo",
fb.link("subst:mostrar previsão", "salvamento sucessivo",
"Não faça salvamentos sucessivos, utilize o botão\"Mostrar previsão\"",
"Não faça salvamentos sucessivos, utilize o botão\"Mostrar previsão\"",
"Em que artigo foram feitos salvamentos sucessivos?"),
"Em que artigo foram feitos salvamentos sucessivos?"),
fbLink("subst:Av-boas vindas", "aviso-BV", "Não dê boas-vindas a usuários" +
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"),
" que não contribuíram com pelo menos uma edição válida"),
fbLink("subst:Av-página de usuário", "av-PU", "Considere refazer a página de usuário(a)"),
fb.link("subst:Av-página de usuário", "av-PU", "Considere refazer a página de usuário(a)"),
fbLink("subst:Aviso/Página pessoal", "av-PU-outro",
fb.link("subst:Aviso/Página pessoal", "av-PU-outro",
"Não edite páginas de outros usuários",
"Não edite páginas de outros usuários",
"Qual página de outro(a) usuário(a) foi editada?"),
"Qual página de outro(a) usuário(a) foi editada?"),
fbLink("subst:não remova", "não remova",
fb.link("subst:não remova", "não remova",
"Não remova marcações de eliminação das páginas",
"Não remova marcações de eliminação das páginas",
"Qual página em que a marcação de eliminação foi removida?"),
"Qual página em que a marcação de eliminação foi removida?"),
fbLink("subst:autobiografia", "autobiografia", "Não crie autobiografias",
fb.link("subst:autobiografia", "autobiografia", "Não crie autobiografias",
"Qual autobiografia foi criada?")
"Qual autobiografia foi criada?")
].join('|');
].join('|');


/** Menu [CatScan] **/
/** Menu [CatScan] **/
var csurl = 'http://toolserver.org/~daniel/WikiSense/CategoryIntersect.php' +
var catScanUrl = 'http://toolserver.org/~daniel/WikiSense/CategoryIntersect.php' +
'?wikilang=pt&wikifam=.wikipedia.org&userlang=pt' +
'?wikilang=pt&wikifam=.wikipedia.org&userlang=pt' +
'&basecat=' + encodeURIComponent( mw.config.get('wgTitle') ) +
'&basecat=' + encodeURIComponent( mw.config.get('wgTitle') ) +
'&basedeep=1&go=Examinar&format=html&mode=',
'&basedeep=1&go=Examinar&format=html&mode=';
fbCat = "Procurar nesta categoria: " + [
fb.cat = "Procurar nesta categoria: " + [
"<a href='" + csurl + "ts&templates=Sem-fontes'>sem fontes</a>",
"<a href='" + catScanUrl + "ts&templates=Sem-fontes'>sem fontes</a>",
"<a href='" + csurl + "ts&templates=Revis%C3%A3o&go='>revisão</a>",
"<a href='" + catScanUrl + "ts&templates=Revis%C3%A3o&go='>revisão</a>",
"<a href='" + csurl + "ts&templates=Wikifica%C3%A7%C3%A3o&go='>wikificação</a>",
"<a href='" + catScanUrl + "ts&templates=Wikifica%C3%A7%C3%A3o&go='>wikificação</a>",
"<a href='" + csurl + "ss&size=1000&stubop=or&links=4&go='>menos de 1 000 bytes ou 4 links</a>",
"<a href='" + catScanUrl + "ss&size=1000&stubop=or&links=4&go='>menos de 1 000 bytes ou 4 links</a>",
"<a href='" + csurl + "ss&size=500&stubop=or&links=2&go='>menos de 500 bytes ou 2 links</a>"
"<a href='" + catScanUrl + "ss&size=500&stubop=or&links=2&go='>menos de 500 bytes ou 2 links</a>"
].join(' | ');
].join(' | ');


/*
/*
Linha 267: Linha 268:
* TODO: Replace ocurrences of this function by something like $(...).html()
* TODO: Replace ocurrences of this function by something like $(...).html()
*/
*/
window.fbabrir = function (menu) {
fb.open = function (menu) {
fb2.innerHTML = menu;
this.submenu.innerHTML = menu;
};
};


/* Função de edição
/* Função de edição
* @param: {string} fbedit A template name, possibly preceded by "subst:",
* @param: {string} code A template name, possibly preceded by "subst:",
* and optionally followed by "|" and some parameter(s)
* and optionally followed by "|" and some parameter(s)
* @param: {(string|null)=} fbtxt Extra text for templates and redirects (optional)
* @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
* @return: {boolean} Returns false if the user canceled or the page already has a template
*/
*/
window.fb = function (fbedit, fbtxt) {
fb.run = function (code, extraText) {
var txtbox = document.getElementById("wpTextbox1");
var textBox = document.getElementById("wpTextbox1");
if (fbtxt === null) {
if (extraText === null) {
// Do nothing if the user canceled the prompt box
// Do nothing if the user canceled the prompt box
return false;
return false;
Linha 285: Linha 286:
if (mw.config.get('wgAction') == 'view') {
if (mw.config.get('wgAction') == 'view') {
var url = mw.util.wikiGetlink( mw.config.get('wgPageName') )
var url = mw.util.wikiGetlink( mw.config.get('wgPageName') )
+ '?action=edit&fastb=' + encodeURIComponent(fbedit);
+ '?action=edit&fastb=' + encodeURIComponent(code);
if (fbtxt) {
if (extraText) {
location.href = url + '&fbtxt=' + encodeURIComponent(fbtxt);
location.href = url + '&fbtxt=' + encodeURIComponent(extraText);
} else {
} else {
location.href = url;
location.href = url;
}
}
} else if (mw.config.get('wgAction') == "edit") {
} else if (mw.config.get('wgAction') == "edit") {
var txt = txtbox.value;
var value = textBox.value;
var ufb = " (usando [[Wikipédia:FB|FastButtons]])";
var summary = " (usando [[Wikipédia:FB|FastButtons]])";
if ( txt.match(/\{\{(?:ER|ESR2|Usuário\:Salebot\/Impróprio)\|/i) ) {
if ( value.match(/\{\{(?:ER|ESR2|Usuário\:Salebot\/Impróprio)\|/i) ) {
alert("Já existe uma predefinição de eliminação nesta página.");
alert("Já existe uma predefinição de eliminação nesta página.");
return false;
return false;
}
}
if (fbedit.indexOf("ER") === 0) {
if (code.indexOf("ER") === 0) {
if (fbtxt) {
if (extraText) {
fbtxt = "|3=" + fbtxt + "}}\n\n";
extraText = "|3=" + extraText + "}}\n\n";
} else {
} else {
fbtxt = "}}\n\n";
extraText = "}}\n\n";
}
}
fbtxt = "{{" + fbedit + "|2=~~" + "~~" + fbtxt;
extraText = "{{" + code + "|2=~~" + "~~" + extraText;
txtbox.value = fbtxt + txt;
textBox.value = extraText + value;
if (fbsalve) {
if (this.salve) {
document.editform.wpSummary.value = "Página proposta para" +
document.editform.wpSummary.value = "Página proposta para" +
" [[WP:ER|eliminação rápida]] (regra " +
" [[WP:ER|eliminação rápida]] (regra " +
fbedit.substring(3) + ")" + ufb;
code.substring(3) + ")" + summary;
}
}
} else if (fbedit == "redirect") {
} else if (code == "redirect") {
if (mw.config.get('wgNamespaceNumber') == 14) {
if (mw.config.get('wgNamespaceNumber') == 14) {
if (fbtxt) {
if (extraText) {
txtbox.value = "{{redirecionamento de categoria|" +
textBox.value = "{{redirecionamento de categoria|" +
fbtxt + "}}";
extraText + "}}";
}
}
if (fbsalve) {
if (this.salve) {
document.editform.wpSummary.value = "Redirecionando para" +
document.editform.wpSummary.value = "Redirecionando para" +
" a [[categoria:" + fbtxt + "]]" + ufb;
" a [[categoria:" + extraText + "]]" + summary;
}
}
} else {
} else {
if (fbtxt) {
if (extraText) {
txtbox.value = "#Redirecionamento [[" + fbtxt + "]]";
textBox.value = "#Redirecionamento [[" + extraText + "]]";
}
}
}
}
} else {
} else {
if (fbtxt) {
if (extraText) {
if (fbedit.indexOf("|") > -1) {
if (code.indexOf("|") > -1) {
fbtxt = "|1=" + fbtxt + "}}";
extraText = "|1=" + extraText + "}}";
} else {
} else {
fbtxt = "|1=" + fbtxt + "}}";
extraText = "|1=" + extraText + "}}";
}
}
} else {
} else {
fbtxt = "}}";
extraText = "}}";
}
}
fbtxt = "{{" + fbedit + fbtxt;
extraText = "{{" + code + extraText;
if (mw.config.get('wgNamespaceNumber') == 3) {
if (mw.config.get('wgNamespaceNumber') == 3) {
txt += "\n\n" + fbtxt + " ~~" + "~~";
value += "\n\n" + extraText + " ~~" + "~~";
} else if (fbedit == "mínimo" || fbedit.indexOf("esboço") === 0) {
} else if (code == "mínimo" || code.indexOf("esboço") === 0) {
if (txt.match(/\n\n\[\[/)) {
if (value.match(/\n\n\[\[/)) {
txt = txt.substring(0, txt.search(/\n\n\[\[/)) + "\n\n" +
value = value.substring(0, value.search(/\n\n\[\[/)) + "\n\n" +
fbtxt + txt.substring(txt.search(/\n\n\[\[/));
extraText + value.substring(value.search(/\n\n\[\[/));
} else {
} else {
txt += "\n\n" + fbtxt;
value += "\n\n" + extraText;
}
}
fbsalve = (fbedit == "mínimo") ?
this.salve = (code == "mínimo") ?
"Página marcada como [[WP:M|mínimo]]" :
"Página marcada como [[WP:M|mínimo]]" :
"Página marcada como [[WP:EBC|esboço]]";
"Página marcada como [[WP:EBC|esboço]]";
} else if (fbedit == "subst:VDA" || fbedit == "subst:matrad") {
} else if (code == "subst:VDA" || code == "subst:matrad") {
txt = fbtxt;
value = extraText;
} else {
} else {
txt = fbtxt + "\n\n" + txt;
value = extraText + "\n\n" + value;
}
}
txtbox.value = txt;
textBox.value = value;
if (fbsalve) {
if (this.salve) {
if (mw.config.get('wgNamespaceNumber') == 3) {
if (mw.config.get('wgNamespaceNumber') == 3) {
fbsalve = "Adicionando aviso";
this.salve = "Adicionando aviso";
} else {
} else {
switch (fbedit) {
switch (code) {
case "subst:VDA":
case "subst:VDA":
fbsalve = "Página marcada como [[WP:VDA|VDA]]";
this.salve = "Página marcada como [[WP:VDA|VDA]]";
break;
break;
case "subst:apagar":
case "subst:apagar":
fbsalve = "Página proposta para [[Wikipedia:Eliminação" +
this.salve = "Página proposta para [[Wikipedia:Eliminação" +
" por votação|eliminação por votação]]";
" por votação|eliminação por votação]]";
break;
break;
case "subst:s-fontes":
case "subst:s-fontes":
fbsalve = "Página marcada como sem fontes";
this.salve = "Página marcada como sem fontes";
break;
break;
case "subst:wkf":
case "subst:wkf":
fbsalve = "Página marcada para [[WP:WKF|wikificação]]";
this.salve = "Página marcada para [[WP:WKF|wikificação]]";
break;
break;
case "subst:rec":
case "subst:rec":
fbsalve = "Página marcada para [[WP:RECI|reciclagem]]";
this.salve = "Página marcada para [[WP:RECI|reciclagem]]";
break;
break;
case "parcial":
case "parcial":
fbsalve = "Página marcada como parcial";
this.salve = "Página marcada como parcial";
break;
break;
case "subst:ctx":
case "subst:ctx":
fbsalve = "Página marcada como sem contexto";
this.salve = "Página marcada como sem contexto";
break;
break;
case "controverso|artigo":
case "controverso|artigo":
fbsalve = "Marcado como controverso";
this.salve = "Marcado como controverso";
break;
break;
case "subst:f-referências":
case "subst:f-referências":
fbsalve = "Marcado que existem referências sem formatação";
this.salve = "Marcado que existem referências sem formatação";
break;
break;
case "subst:m-notas":
case "subst:m-notas":
fbsalve = "Marcado que carece de mais fontes";
this.salve = "Marcado que carece de mais fontes";
break;
break;
case "subst:s-notas":
case "subst:s-notas":
fbsalve = "Página marcada como sem notas";
this.salve = "Página marcada como sem notas";
break;
break;
case "subst:s-fontes-bpv":
case "subst:s-fontes-bpv":
fbsalve = "Marcado como [[WP:BPV|biografia de pessoa" +
this.salve = "Marcado como [[WP:BPV|biografia de pessoa" +
" viva]] sem fontes";
" viva]] sem fontes";
break;
break;
case "subst:fpr":
case "subst:fpr":
fbsalve = "Página marcada como sem fontes secundárias" +
this.salve = "Página marcada como sem fontes secundárias" +
" fiáveis";
" fiáveis";
break;
break;
default:
default:
if (fbsalve === true) {
if (this.salve === true) {
fbsalve = "Adicionando marcação";
this.salve = "Adicionando marcação";
} else if (fbedit.indexOf("subst:ESR") === 0) {
} else if (code.indexOf("subst:ESR") === 0) {
fbsalve = "Página proposta para [[WP:ESR|eliminação" +
this.salve = "Página proposta para [[WP:ESR|eliminação" +
" semirrápida]]";
" semirrápida]]";
}
}
}
}
}
}
document.editform.wpSummary.value = fbsalve + ufb;
document.editform.wpSummary.value = this.salve + summary;
}
}
}
}
if (fbsalve) {
if (this.salve) {
document.editform.submit();
document.editform.submit();
}
}
Linha 422: Linha 423:


/* Consulta a API do MediaWiki usando AJAX
/* Consulta a API do MediaWiki usando AJAX
* @param: {string} fapi An abreviation such as "esb", "afl", "PV",
* @param: {string} code An abreviation such as "esb", "afl", "PV",
* @param: {string} url The url of the API query
* @param: {string} url The url of the API query
* FIXME: @deprecated Use jQuery AJAX functions (see [[mw:RL/JD#ajax.js]] )
* FIXME: @deprecated Use jQuery AJAX functions (see [[mw:RL/JD#ajax.js]] )
*/
*/
function fbajax(fapi, url) {
fb.ajax = function (code, url) {
var fajax = sajax_init_object();
var ajax = sajax_init_object(),
that = this;
if (!fajax) {
if (!ajax) {
return;
return;
}
}
fajax.open('GET', url, true);
ajax.open('GET', url, true);
fajax.send('');
ajax.send('');
fajax.onreadystatechange = function () {
ajax.onreadystatechange = function () {
if (fajax.readyState == 4 && fajax.status == 200) {
if (ajax.readyState == 4 && ajax.status == 200) {
window.fbapi(fapi, fajax.responseXML);
that.api(code, ajax.responseXML);
}
}
};
};
}
};


/* Callback function for API calls
/* Callback function for API calls
* @param {string} fapi An abreviation such as "esb", "afl", "PV",
* @param {string} code An abreviation such as "esb", "afl", "PV",
* @param {Object} api HTML code???
* @param {Object} api HTML code???
*/
*/
window.fbapi = function (fapi, api) {
fb.api = function (code, api) {
var url, esb, i, pages = '', charnum = 0, title, tamanho, coment, user;
var url, esb, i, pages = '', charnum = 0, title, length, comment, user;
if (!api) {
if (!api) {
url = mw.config.get('wgScriptPath') + "/api.php?format=xml&action=query&";
url = mw.config.get('wgScriptPath') + "/api.php?format=xml&action=query&";
// TODO: Criar um objeto { 'esb': ..., 'afl':... } com um item para cada "fabi"
// TODO: Criar um objeto { 'esb': ..., 'afl':... } com um item para cada "fabi"
switch ( fapi ) {
switch ( code ) {
case 'esb':
case 'esb':
esb = document.getElementById("esbinput");
esb = document.getElementById("esbinput");
if (esbtxt == esb.value || esbtxt2 == esb.value) {
if (esbText == esb.value || esbText2 == esb.value) {
return;
return;
}
}
esbtxt = esb.value;
esbText = esb.value;
if (esbtxt == esb.value.substr(0, (esb.value.length - 1))) {
if (esbText == esb.value.substr(0, (esb.value.length - 1))) {
return;
return;
}
}
Linha 489: Linha 491:
break;
break;
}
}
fbajax(fapi, url);
this.ajax(code, url);
} else {
} else {
/** Processamento da resposta do API **/
/** Processamento da resposta do API **/
switch ( fapi ) {
switch ( code ) {
case 'afl':
case 'afl':
// Afluentes
// Afluentes
Linha 500: Linha 502:
"ref" :
"ref" :
"<span style=\"color:red\">ref</span>";
"<span style=\"color:red\">ref</span>";
var catline = document.getElementById("mw-normal-catlinks");
var catLine = document.getElementById("mw-normal-catlinks");
// FIXME: Do not do screen scraping to get this info!
// FIXME: Do not do screen scraping to get this info!
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";
} else {
} else {
Linha 523: Linha 525:
mw.config.get('wgFormattedNamespaces')[ mw.config.get('wgNamespaceNumber') + 1 ] +
mw.config.get('wgFormattedNamespaces')[ mw.config.get('wgNamespaceNumber') + 1 ] +
encodeURIComponent( mw.config.get('wgTitle') );
encodeURIComponent( mw.config.get('wgTitle') );
fb2.innerHTML = info;
this.submenu.innerHTML = info;
if (document.getElementById("ca-talk").className != "new") {
if (document.getElementById("ca-talk").className != "new") {
fbajax("qualidade", url);
this.ajax("qualidade", url);
} else {
} else {
var hidcat = document.getElementById("mw-hidden-catlinks");
var hiddenCats = document.getElementById("mw-hidden-catlinks");
if (hidcat) {
if (hiddenCats) {
hidcat = hidcat.innerHTML;
hiddenCats = hiddenCats.innerHTML;
if (hidcat.indexOf("!Artigos de qualidade") > -1) {
if (hiddenCats.indexOf("!Artigos de qualidade") > -1) {
hidcat = hidcat.substr(hidcat.indexOf("!Artigos de qualidade") + 22, 1);
hiddenCats = hiddenCats.substr(hiddenCats.indexOf("!Artigos de qualidade") + 22, 1);
if (hidcat == "d") {
if (hiddenCats == "d") {
hidcat = "?";
hiddenCats = "?";
}
}
fb2.innerHTML += "<span title='Qualidade do artigo'> Q-<b>" +
this.submenu.innerHTML += "<span title='Qualidade do artigo'> Q-<b>" +
hidcat + "</b></span>";
hiddenCats + "</b></span>";
}
}
}
}
Linha 545: Linha 547:
api = api.getElementsByTagName("cl");
api = api.getElementsByTagName("cl");
if (api) {
if (api) {
var apicat;
var quality;
for (i = 0; i < api.length; i++) {
for (i = 0; i < api.length; i++) {
if (!api[i]){
if (!api[i]){
continue;
continue;
}
}
apicat = api[i].getAttribute("title");
quality = api[i].getAttribute("title");
if (apicat.indexOf("!Artigos de qualidade") > -1) {
if (quality.indexOf("!Artigos de qualidade") > -1) {
apicat = apicat.substr(32, 1);
quality = quality.substr(32, 1);
if (apicat == "d") {
if (quality == "d") {
apicat = "?";
quality = "?";
}
}
fb2.innerHTML += "<span title='Qualidade do artigo'> Q-<b>" +
this.submenu.innerHTML += "<span title='Qualidade do artigo'> Q-<b>" +
apicat + "</b></span>";
quality + "</b></span>";
break;
break;
}
}
Linha 582: Linha 584:
) {
) {
// Exibe sugestões. Baseado no script do HotCat
// Exibe sugestões. Baseado no script do HotCat
var inicio = esb.value.length;
var start = esb.value.length;
esb.value = api;
esb.value = api;
esbtxt2 = api;
esbText2 = api;
if (esb.setSelectionRange) {
if (esb.setSelectionRange) {
esb.setSelectionRange(inicio, api.length);
esb.setSelectionRange(start, api.length);
} else if (esb.createTextRange) {
} else if (esb.createTextRange) {
var sel = esb.createTextRange();
var sel = esb.createTextRange();
sel.move("character", inicio);
sel.move("character", start);
sel.moveEnd("character", api.length - inicio);
sel.moveEnd("character", api.length - start);
sel.select();
sel.select();
} else {
} else {
esb.selectionStart = inicio;
esb.selectionStart = start;
esb.selectionEnd = api.length;
esb.selectionEnd = api.length;
}
}
Linha 610: Linha 612:
break;
break;
}
}
tamanho = (api[i].getAttribute("newlen")
length = (api[i].getAttribute("newlen")
- api[i].getAttribute("oldlen"));
- api[i].getAttribute("oldlen"));
if (tamanho > 0) {
if (length > 0) {
tamanho = "+" + tamanho;
length = "+" + length;
}
}
coment = api[i].getAttribute("comment").replace("/*", "?");
comment = api[i].getAttribute("comment").replace("/*", "?");
if (coment) {
if (comment) {
coment = "(" + coment.replace("*/", ":") + ")";
comment = "(" + comment.replace("*/", ":") + ")";
}
}
coment = coment.replace("[[Ajuda:Guia de edição/Menus e" +
comment = comment.replace("[[Ajuda:Guia de edição/Menus e" +
" ferramentas/Sumário de edição|?]]", "");
" ferramentas/Sumário de edição|?]]", "");
if ( i > 0){
if ( i > 0){
Linha 625: Linha 627:
}
}
pages += "<a href=\"" + mw.util.wikiGetlink( title ) +
pages += "<a href=\"" + mw.util.wikiGetlink( title ) +
"?diff=last\" title=\"(" + tamanho + ") " +
"?diff=last\" title=\"(" + length + ") " +
api[i].getAttribute("user") + " " + coment + "\">" +
api[i].getAttribute("user") + " " + comment + "\">" +
title + "</a>";
title + "</a>";
}
}
fb2.innerHTML = pages;
this.submenu.innerHTML = pages;
break;
break;
case 'PN':
case 'PN':
Linha 643: Linha 645:
break;
break;
}
}
tamanho = "+" + api[i].getAttribute("newlen");
length = "+" + api[i].getAttribute("newlen");
coment = api[i].getAttribute("comment");
comment = api[i].getAttribute("comment");
if (coment) {
if (comment) {
coment = "(" + coment.replace("[[Ajuda:SEA|?]] ", "") + ")";
comment = "(" + comment.replace("[[Ajuda:SEA|?]] ", "") + ")";
}
}
if ( i > 0){
if ( i > 0){
Linha 653: Linha 655:
pages += "<a href=\"" + mw.util.wikiGetlink( title )
pages += "<a href=\"" + mw.util.wikiGetlink( title )
+ "?redirect=no&rcid=" + api[i].getAttribute("rcid")
+ "?redirect=no&rcid=" + api[i].getAttribute("rcid")
+ "\" title=\"(" + tamanho + ") " +
+ "\" title=\"(" + length + ") " +
api[i].getAttribute("user") + " " + coment
api[i].getAttribute("user") + " " + comment
+ "\">" + title + "</a>";
+ "\">" + title + "</a>";
}
}
fb2.innerHTML = pages;
this.submenu.innerHTML = pages;
break;
break;
case 'MR':
case 'MR':
Linha 671: Linha 673:
break;
break;
}
}
tamanho = (api[i].getAttribute("newlen")
length = (api[i].getAttribute("newlen")
- api[i].getAttribute("oldlen"));
- api[i].getAttribute("oldlen"));
if (tamanho > 0) {
if (length > 0) {
tamanho = "+" + tamanho;
length = "+" + length;
}
}
coment = api[i].getAttribute("comment").replace("/*", "?");
comment = api[i].getAttribute("comment").replace("/*", "?");
if (coment) {
if (comment) {
coment = "(" + coment.replace("*/", ":") + ")";
comment = "(" + comment.replace("*/", ":") + ")";
}
}
if ( i > 0){
if ( i > 0){
Linha 684: Linha 686:
}
}
pages += "<a href=\"" + mw.util.wikiGetlink( title )
pages += "<a href=\"" + mw.util.wikiGetlink( title )
+ "?diff=last\" title=\"(" + tamanho + ") "
+ "?diff=last\" title=\"(" + length + ") "
+ api[i].getAttribute("user") + " "
+ api[i].getAttribute("user") + " "
+ coment + "\">" + title + "</a>";
+ comment + "\">" + title + "</a>";
}
}
fb2.innerHTML = pages;
this.submenu.innerHTML = pages;
break;
break;
case 'usu':
case 'usu':
Linha 694: Linha 696:
api = api.getElementsByTagName("u");
api = api.getElementsByTagName("u");
if ( api && api.length ) {
if ( api && api.length ) {
var registro = api[0].getAttribute("registration");
var regDate = api[0].getAttribute("registration");
registro = registro.substr(8, 2) + "/" + registro.substr(5, 2) +
regDate = regDate.substr(8, 2) + "/" + regDate.substr(5, 2) +
"/" + registro.substr(0, 4);
"/" + regDate.substr(0, 4);
user = mw.config.get('wgTitle');
user = mw.config.get('wgTitle');
if (user.indexOf("/") > -1) {
if (user.indexOf("/") > -1) {
Linha 702: Linha 704:
}
}
var encUser = encodeURI(user);
var encUser = encodeURI(user);
fb2.innerHTML =
this.submenu.innerHTML =
"<span style=\"color:black\">" +
"<span style=\"color:black\">" +
api[0].getAttribute("editcount") +
api[0].getAttribute("editcount") +
"</span> edições desde <span style=\"color:black\">" +
"</span> edições desde <span style=\"color:black\">" +
registro + "</span> | <a href=\"" +
regDate + "</span> | <a href=\"" +
mw.util.wikiGetlink( 'Especial:Contribuições/' ) +
mw.util.wikiGetlink( 'Especial:Contribuições/' ) +
encUser +
encUser +
Linha 728: Linha 730:
};
};


/* Executes the gadget when document is ready */
/* Initialize the gadget */
$(function () {
fb.init = function () {
var fbUser, contentSub = document.getElementById("contentSub"),
var inUserNS, contentSub = document.getElementById("contentSub"),
fbedit = mw.util.getParamValue('fastb');
param = mw.util.getParamValue('fastb');
contentSub.appendChild(fb1);
contentSub.appendChild(fb.menu);
contentSub.appendChild(fb2);
contentSub.appendChild(fb.submenu);
if ($.inArray(mw.config.get('wgAction'), ["view", "edit"]) !== -1) {
if ($.inArray(mw.config.get('wgAction'), ["view", "edit"]) !== -1) {
fb2.innerHTML = ""; /*** Menu Principal ***/
fb.submenu.innerHTML = ""; /*** Menu Principal ***/
if (mw.config.get('wgNamespaceNumber') > -1) {
if (mw.config.get('wgNamespaceNumber') > -1) {
fbUser = $.inArray(mw.config.get('wgNamespaceNumber'), [2, 3]) !== -1
inUserNS = $.inArray(mw.config.get('wgNamespaceNumber'), [2, 3]) > -1
&& mw.config.get('wgTitle').indexOf(mw.config.get('wgUserName')) === 0;
&& mw.config.get('wgTitle').indexOf(mw.config.get('wgUserName')) === 0;
if (fbUser) {
if (inUserNS) {
fb1.innerHTML = "[" +
fb.menu.innerHTML = "[" +
fbLink("ER|1", "ER1", "Eliminar subpágina do próprio usuário") +
fb.link("ER|1", "ER1", "Eliminar subpágina do próprio usuário") +
"]";
"]";
} else {
} else {
fb1.innerHTML = "[<a onMouseOver='this.style.cursor=\"default\"'" +
fb.menu.innerHTML = "[<a onMouseOver='this.style.cursor=\"default\"'" +
" onClick='fbabrir(fbEr)'>ER</a>]";
" onClick='fb.open(fb.ER)'>ER</a>]";
}
}
}

}
if ($.inArray(mw.config.get('wgNamespaceNumber'), [0, 102]) !== -1) {
if ($.inArray(mw.config.get('wgNamespaceNumber'), [0, 102]) !== -1) {
fb1.innerHTML += " [<a onMouseOver='this.style.cursor=\"default\"'" +
fb.menu.innerHTML += " [<a onMouseOver='this.style.cursor=\"default\"'" +
" onClick='fbabrir(fbEsr)'>ESR</a>] [" +
" onClick='fb.open(fb.ESR)'>ESR</a>] [" +
fbLink("subst:apagar", "PE",
fb.link("subst:apagar", "PE",
"Marcar para eliminação por votação") +
"Marcar para eliminação por votação") +
"] [<a onMouseOver='this.style.cursor=\"pointer\"'" +
"] [<a onMouseOver='this.style.cursor=\"pointer\"'" +
" title='Cópia/Violação de direito autoral'" +
" title='Cópia/Violação de direito autoral'" +
" onClick='obs=prompt(\"Informe o url da página copiada\"," +
" onClick='obs=prompt(\"Informe o url da página copiada\"," +
" \"http://\");fb(\"subst:VDA\",obs)'>VDA</a>] [" +
" \"http://\");fb.run(\"subst:VDA\",obs)'>VDA</a>] [" +
fbLink("subst:suspeito", "susp",
fb.link("subst:suspeito", "susp",
"Suspeito de violação de direitos autorais") +
"Suspeito de violação de direitos autorais") +
"] [" + fbLink("subst:matrad", "trad",
"] [" + fb.link("subst:matrad", "trad",
"Tradução de baixa qualidade",
"Tradução de baixa qualidade",
"De qual língua a página foi maltraduzida (ca, de, en, es," +
"De qual língua a página foi maltraduzida (ca, de, en, es," +
" fr, it, ja, nl, no, pl, ru, sv, zh)?") +
" fr, it, ja, nl, no, pl, ru, sv, zh)?") +
"] [" + fbLink("redirect", "#R", "Redirecionar",
"] [" + fb.link("redirect", "#R", "Redirecionar",
"Redirecionar para qual página?") +
"Redirecionar para qual página?") +
"] [<a onMouseOver='this.style.cursor=\"default\"'" +
"] [<a onMouseOver='this.style.cursor=\"default\"'" +
" onClick='fbabrir(fbMan)'>manutenção</a>]" +
" onClick='fb.open(fb.man)'>manutenção</a>]" +
" [<a onMouseOver='this.style.cursor=\"default\"'" +
" [<a onMouseOver='this.style.cursor=\"default\"'" +
" onClick='fbabrir(fbEsb)'>esboço</a>]" +
" onClick='fb.open(fb.esb)'>esboço</a>]" +
" [<a onMouseOver='this.style.cursor=\"default\"'" +
" [<a onMouseOver='this.style.cursor=\"default\"'" +
" onClick='fbabrir(fbbus)'>busca</a>]";
" onClick='fb.open(fb.search)'>busca</a>]";
if (mw.config.get('wgAction') === "view") {
if (mw.config.get('wgAction') === "view") {
window.fbapi("afl");
fb.api("afl");
}
}
} else {
} else {
if ($.inArray(mw.config.get('wgNamespaceNumber'), [2, 10]) !== -1) {
if ($.inArray(mw.config.get('wgNamespaceNumber'), [2, 10]) !== -1) {
fb1.innerHTML += " [" + fbLink("subst:apagar", "PE",
fb.menu.innerHTML += " [" + fb.link("subst:apagar", "PE",
"Marcar para eliminação por votação") + "]";
"Marcar para eliminação por votação") + "]";
}
}
if (mw.config.get('wgNamespaceNumber') % 2 === 0) {
if (mw.config.get('wgNamespaceNumber') % 2 === 0) {
fb1.innerHTML += " [" + fbLink("redirect", "#R", "Redirecionar",
fb.menu.innerHTML += " [" + fb.link("redirect", "#R", "Redirecionar",
"Redirecionar para qual página?") + "]";
"Redirecionar para qual página?") + "]";
}
}
if (mw.config.get('wgNamespaceNumber') === 14) {
if (mw.config.get('wgNamespaceNumber') === 14) {
fb1.innerHTML += " [<a onMouseOver='this.style.cursor=\"default\"'" +
fb.menu.innerHTML += " [<a onMouseOver='this.style.cursor=\"default\"'" +
" onClick='fbabrir(fbCat)'>CatScan</a>]";
" onClick='fb.open(fb.cat)'>CatScan</a>]";
}
}
}
}
if (mw.config.get('wgNamespaceNumber') === 3) {
if (mw.config.get('wgNamespaceNumber') === 3) {
fb1.innerHTML += " [<a onMouseOver='this.style.cursor=\"default\"'" +
fb.menu.innerHTML += " [<a onMouseOver='this.style.cursor=\"default\"'" +
" onClick='fbabrir(fbAv)'>aviso</a>]";
" onClick='fb.open(fb.warn)'>aviso</a>]";
}
}
if ($.inArray(mw.config.get('wgNamespaceNumber'), [2, 3]) !== -1) {
if ($.inArray(mw.config.get('wgNamespaceNumber'), [2, 3]) !== -1) {
fb1.innerHTML += " [<a onMouseOver='this.style.cursor=\"default\"'" +
fb.menu.innerHTML += " [<a onMouseOver='this.style.cursor=\"default\"'" +
" onClick='fbapi(\"usu\")'>sobre a conta</a>]";
" onClick='fb.api(\"usu\")'>sobre a conta</a>]";
}
}
}
}
fb1.innerHTML += " [<a onMouseOver='this.style.cursor=\"default\"'" +
fb.menu.innerHTML += " [<a onMouseOver='this.style.cursor=\"default\"'" +
" title=\"Páginas vigiadas\" onClick='fbapi(\"PV\")'>PV</a>]" +
" title=\"Páginas vigiadas\" onClick='fb.api(\"PV\")'>PV</a>]" +
" [<a onMouseOver='this.style.cursor=\"default\"'" +
" [<a onMouseOver='this.style.cursor=\"default\"'" +
" title=\"Páginas novas não patrulhadas\"" +
" title=\"Páginas novas não patrulhadas\"" +
" onClick='fbapi(\"PN\")'>PN</a>]" +
" onClick='fb.api(\"PN\")'>PN</a>]" +
" [<a onMouseOver='this.style.cursor=\"default\"'" +
" [<a onMouseOver='this.style.cursor=\"default\"'" +
" title=\"Mudanças recentes (IPs, domínio principal)\"" +
" title=\"Mudanças recentes (IPs, domínio principal)\"" +
" onClick='fbapi(\"MR\")'>MR</a>]";
" onClick='fb.api(\"MR\")'>MR</a>]";
switch (mw.config.get('wgAction')) {
switch (mw.config.get('wgAction')) {
case 'edit':
case 'edit':
fbsalve = (fbedit !== null);
fb.salve = (param !== null);
if (fbsalve) {
if (fb.salve) {
window.fb(fbedit, mw.util.getParamValue('fbtxt') || '');
fb.run(param, mw.util.getParamValue('fbtxt') || '');
}
}
break;
break;
case 'markpatrolled':
case 'markpatrolled':
if (fbedit !== null) {
if (param !== null) {
location.href = mw.util.wikiGetlink( mw.config.get('wgPageName') ) +
location.href = mw.util.wikiGetlink( mw.config.get('wgPageName') ) +
'?action=edit&fastb=' + fbedit;
'?action=edit&fastb=' + param;
}
}
break;
break;
Linha 822: Linha 823:
// Não faz nada nas demais ações
// Não faz nada nas demais ações
}
}
});
};

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