MediaWiki:Gadget-rollback-summary.js
来自希灵百科
注意:在保存之后,您可能需要清除浏览器缓存才能看到所作出的变更的影响。
- Firefox或Safari:按住Shift的同时单击刷新,或按Ctrl-F5或Ctrl-R(Mac为⌘-R)
- Google Chrome:按Ctrl-Shift-R(Mac为⌘-Shift-R)
- Internet Explorer:按住Ctrl的同时单击刷新,或按Ctrl-F5
- Opera:前往菜单 → 设置(Mac为Opera → Preferences),然后隐私和安全 → 清除浏览数据 → 缓存的图片和文件。
$(function() {
mw.config.set({
'wgRollbacking': false,
'wgRollbackTool': 'inited'
});
$('.mw-rollback-link a').each(function() {
var obj = {};
$(this).attr('href').replace(/^[^?]*\?/, '').split('&').forEach(function(v) {
var arr = v.split('=');
obj[arr[0]] = decodeURIComponent(arr[1]);
});
$(this).attr({
'title': this.title + '(启用自定义摘要)',
'href': 'javascript:void(0)'
}).data(obj); //取消拖动链接回退
if ($('.ns-special')[0] && $(this).text().indexOf('10') != -1) $(this).parent().text('[超过10次的编辑]').attr('title', '超过10次的编辑请使用撤销功能,以便检查差异(自定义摘要小工具)');
}).on('click', function() {
if (mw.config.get('wgRollbacking')) return false;
var rollbackSummary = prompt('回退操作的编辑摘要【xxx//Rollback】\n【空白则使用默认回退摘要】\n【取消则不进行回退】:'),
self = $(this);
if (rollbackSummary !== null) $.ajax({
type: 'POST',
url: 'https://zh.moegirl.org/api.php',
beforeSend: function() {
self.replaceWith('<span id="rbing"><img src="https://upload.wikimedia.org/wikipedia/commons/d/de/Ajax-loader.gif" />正在回退中……</span>');
self = $('#rbing');
$('.mw-rollback-link a').not(self).css({
color: '#aaa',
"text-decoration": 'none'
});
mw.config.set('wgRollbacking', true);
},
data: {
title: self.data('title'),
user: self.data('from'),
summary: rollbackSummary + ' //Rollback',
token: self.data('token'),
action: 'rollback',
format: 'json'
},
error: function(eO, eM, eC) {
eC = eM ? eC + '(' + eM + ')' : eC;
self.css('color', 'red').html('错误:' + eC + '。将在<span id="rbcount">3</span>秒内刷新');
exit();
},
success: function(d) {
if (d.error) self.css('color', 'red').html('错误:已被回退。将在<span id="rbcount">3</span>秒内刷新');
else self.css('color', 'green').html('成功!将在<span id="rbcount">3</span>秒内刷新');
exit();
}
});
return false;
});
function exit() {
window.setInterval(function() {
var count = +$('#rbcount').text();
if (count-- == 1) window.location.reload();
$('#rbcount').text(count > 0 ? count : '0');
}, 1000);
}
});