MediaWiki:Gadget-diffTools.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
Pedido em WP:PA/PP
 
m Atualização do MediaWiki:Gadget-rev e avisos.js: +mw.util.wikiGetlink(); +$.param; $('#id').find(elem) é mais eficiente que $('#id elem'); typeof x == 'function'-->$.isFunction(x)
 
Linha 15: Linha 15:
message = mw.util.getParamValue('message'),
message = mw.util.getParamValue('message'),
diff = mw.util.getParamValue('diff'),
diff = mw.util.getParamValue('diff'),
user1 = $('#mw-diff-otitle2 a').first().html() || mw.util.getParamValue('user1'),
user1 = $('#mw-diff-otitle2').find('a').first().html() || mw.util.getParamValue('user1'),
user2 = $('#mw-diff-ntitle2 a').first().html() || mw.util.getParamValue('user2'),
user2 = $('#mw-diff-ntitle2').find('a').first().html() || mw.util.getParamValue('user2'),
urlPrefix = mw.config.get('wgScript') + '?title=',
revUrl = mw.util.wikiGetlink( '' ) + '?' + $.param( {
'action': 'edit',
revUrl = urlPrefix + '&action=edit&oldid=' + mw.util.getParamValue('oldid');
'oldid': mw.util.getParamValue('oldid')
} );
var options = [{
var options = [{
'desc': 'Reverter',
'desc': 'Reverter',
'sep': ' / ',
'sep': ' / ',
'sum': 'Revertidas edições para a última versão por [[User:$1|$1]] usando [[WP:RA|Reversão e avisos]]',
'sum': 'Revertidas edições para a última versão por [[User:$1|$1]]' +
' usando [[WP:RA|Reversão e avisos]]',
'url': revUrl + '&user1=' + encodeURIComponent(user1) + '&user2=' + encodeURIComponent(user2) + '&difftool=0'
'url': revUrl + '&' + $.param( {
'user1': user1,
'user2': user2,
'difftool': '0'
} )
}, {
}, {
'desc': '+comentário',
'desc': '+comentário',
'sep': ') (Usuário: ',
'sep': ') (Usuário: ',
'sum': 'Revertidas edições de [[User:$2|$2]] para a última versão por [[User:$1|$1]] usando [[WP:RA|Reversão e avisos]] ($3)',
'sum': 'Revertidas edições de [[User:$2|$2]] para a última versão por' +
' [[User:$1|$1]] usando [[WP:RA|Reversão e avisos]] ($3)',
'url': function () {
'url': function () {
window.location = revUrl + '&user1=' + encodeURIComponent(user1) + '&user2=' + encodeURIComponent(user2) + '&difftool=1&message=' + encodeURIComponent(that.getSummary());
window.location = revUrl + '&' + $.param( {
'user1': user1,
'user2': user2,
'difftool': '1',
'message': that.getSummary()
} );
}
}
}, {
}, {
Linha 105: Linha 118:
for (var i = 0; i < options.length; i++) {
for (var i = 0; i < options.length; i++) {
html += '<a id="diff-tools-link-' + i;
html += '<a id="diff-tools-link-' + i;
if (typeof options[i].url === 'function') {
if ( $.isFunction( options[i].url ) ) {
html += '" class="diff-tools-f-link" href="#';
html += '" class="diff-tools-f-link" href="#';
} else if (typeof options[i].url === 'string') {
} else if (typeof options[i].url === 'string') {
html += '" href="' + options[i].url;
html += '" href="' + options[i].url;
} else {
} else {
html += '" href="' + urlPrefix + 'User_talk:' + encodeURIComponent(user2) + '&action=edit&section=new&difftool=' + i;
html += '" href="' + mw.util.wikiGetlink( 'User talk:' + user2 ) + '?' + $.param( {
'action': 'edit',
'section': 'new',
'difftool': i
} );
}
}
html += '">' + options[i].desc + '</a>';
html += '">' + options[i].desc + '</a>';
Linha 117: Linha 134:
html += '</span><br>';
html += '</span><br>';
$('#contentSub').prepend(html);
$('#contentSub').prepend(html);
$('#diff-tools a.diff-tools-f-link').click(function (e) {
$('#diff-tools').find('a.diff-tools-f-link').click(function (e) {
e.preventDefault(); // avoid jumping to the top (href=#)
e.preventDefault(); // avoid jumping to the top (href=#)
var opt = parseInt($(this).attr('id').replace('diff-tools-link-', ''), 10);
var opt = parseInt($(this).attr('id').replace('diff-tools-link-', ''), 10);

Revisão das 01h25min de 11 de agosto de 2011

/**

* Ferramentas para diffs (Reversão e avisos)
*
* Em páginas de comparação de 2 edições, inclui atalhos de reverter e avisar o usuário.
* @source: en:Wikipedia:WikiProject_User_scripts/Scripts/Revert_tools
* @see: Wikipedia:Software/Scripts/Reversão e avisos
* @author: en:User:Lorian
*/

window.diffTools = new(function () {

/* Private Members */ var that = this, defaultSep = ' . ', message = mw.util.getParamValue('message'), diff = mw.util.getParamValue('diff'), user1 = $('#mw-diff-otitle2').find('a').first().html() || mw.util.getParamValue('user1'), user2 = $('#mw-diff-ntitle2').find('a').first().html() || mw.util.getParamValue('user2'), revUrl = mw.util.wikiGetlink( ) + '?' + $.param( { 'action': 'edit', 'oldid': mw.util.getParamValue('oldid') } ); var options = [{ 'desc': 'Reverter', 'sep': ' / ', 'sum': 'Revertidas edições para a última versão por $1' + ' usando Reversão e avisos', 'url': revUrl + '&' + $.param( { 'user1': user1, 'user2': user2, 'difftool': '0' } ) }, { 'desc': '+comentário', 'sep': ') (Usuário: ', 'sum': 'Revertidas edições de $2 para a última versão por' + ' $1 usando Reversão e avisos ($3)', 'url': function () { window.location = revUrl + '&' + $.param( { 'user1': user1, 'user2': user2, 'difftool': '1', 'message': that.getSummary() } ); } }, { 'desc': 'bv', 'subst': 'Bem-vindo', 'sum': 'Mensagem de boas-vindas a novo usuário' }, { 'desc': 'bv-ip', 'sep': ' / ', 'subst': 'Bem-vindo IP', 'sum': 'Mensagem de boas-vindas a usuário anônimo' }, { 'desc': 'av', 'subst': 'Aviso' }, { 'desc': 'bv-av-reg', 'subst': 'Bv-av-registrado', 'sum': 'Mensagem de boas-vindas e aviso a usuário registrado' }, { 'desc': 'bv-av', 'subst': 'Bv-av', 'sum': 'Mensagem de boas-vindas e aviso a iniciante' }, { 'desc': 'av-t1', 'subst': 'Av-teste|1', 'sum': 'Aviso 1' }, { 'desc': 'av-t2', 'subst': 'Av-teste|2', 'sum': 'Aviso 2' }, { 'desc': 'av-t3', 'sep': ' / ', 'subst': 'Av-teste|3', 'sum': 'Aviso 3' }, { 'desc': 'propaganda', 'subst': 'Propaganda', 'sum': 'Aviso sobre propaganda' }, { 'desc': 'mudança de grafia', 'subst': 'Ortografia', 'sum': 'Aviso sobre ortografia' }, { 'desc': 'assinatura em artigo', 'subst': 'Aviso-assinatura', 'sum': 'Aviso sobre assinatura em artigo' }, { 'desc': 'cópia', 'subst': 'Não copie', 'sum': 'Aviso sobre direitos de autor' }, { 'desc': 'data', 'sep': ')', 'subst': 'Av-data', 'sum': 'Aviso sobre datas' }];

/* Public Methods */

/** * Returns the summary text provided by user * * @return {String} Summary text */ this.getSummary = function () { return prompt('Comentário a acrescentar ao sumário da reversão:', ); };

/** * Inserts additional tools on diff pages */ this.addOptions = function () { var html = '('; for (var i = 0; i < options.length; i++) { html += '<a id="diff-tools-link-' + i; if ( $.isFunction( options[i].url ) ) { html += '" class="diff-tools-f-link" href="#'; } else if (typeof options[i].url === 'string') { html += '" href="' + options[i].url; } else { html += '" href="' + mw.util.wikiGetlink( 'User talk:' + user2 ) + '?' + $.param( { 'action': 'edit', 'section': 'new', 'difftool': i } ); } html += '">' + options[i].desc + '</a>'; html += options[i].sep || defaultSep; } html += '
'; $('#contentSub').prepend(html); $('#diff-tools').find('a.diff-tools-f-link').click(function (e) { e.preventDefault(); // avoid jumping to the top (href=#) var opt = parseInt($(this).attr('id').replace('diff-tools-link-', ), 10); options[opt].url(); }); };

/** * Adds warnings to user pages * @param {number} tool The number of tool (it's position in options array) */ this.editUsingTool = function (tool) { if (!(0 <= tool && tool < options.length)) { return; } var sum = options[tool].sum; if (sum) { sum = sum.replace(/\$1/g, user1).replace(/\$2/g, user2).replace(/\$3/g, message); $('#wpSummary').val(sum); } if (options[tool].subst) { $('#wpTextbox1').text('{{sub' + 'st:' + options[tool].subst + '}} ~~' + '~~'); } $('#editform').submit(); };

/** * Prepare and execute the tools */ this.run = function () { var num = parseInt(mw.util.getParamValue('difftool'), 10); if (mw.config.get('wgCanonicalSpecialPageName')) { return; } if (diff) { that.addOptions(); } else { that.editUsingTool(num); } };

// Executes the script when page is ready $(this.run); })();

// //