“MediaWiki:Gadget-patrolPlus.js”的版本间的差异
来自希灵百科
(创建页面,内容为“$(function() { if (['Special:监视列表', 'Special:最近更改'].indexOf(mw.config.get('wgPageName')) === -1) return; $('abbr.unpatrolled').each(function(...”) |
(没有差异)
|
2017年1月18日 (三) 14:15的最新版本
$(function() {
if (['Special:监视列表', 'Special:最近更改'].indexOf(mw.config.get('wgPageName')) === -1) return;
$('abbr.unpatrolled').each(function() {
if ($(this).closest('tr').index() === 0) return;
var link = $(this).closest('li,tr').find('a[href*="diff"]').not('[href*="diff=0"]').first();
if (!link[0]) return;
if (/action=history/.test(link.attr('href'))) return; // 历史遗留问题
var span = $('<span/>'),
a = $('<a/>', {
href: 'javascript:void(0)',
class: 'patrolLink'
}).appendTo(span),
attr = $(this),
revid = +link.attr('href').match(/diff=(\d+)/)[1];
attr.before(span).appendTo(a).before('[').after(']');
a.on('click', function() {
if (mw.config.get('wgPatroling')) return;
if (!window.confirm('你确定要标记此编辑为已巡查吗?')) return;
var self = $(this),
backup = self.clone();
mw.config.set('wgPatroling', true);
$('a.patrolLink').not(self).css({
color: '#aaa',
"text-decoration": 'none'
});
self.replaceWith($('<span/>', {
html: '[<img src="https://upload.wikimedia.org/wikipedia/commons/d/de/Ajax-loader.gif" />正在标记中……]'
}));
$.ajax({
type: 'GET',
url: 'http://xilinghost.tk/wiki/api.php?action=query&meta=tokens&type=patrol&format=json',
success: function(d) {
if (d.error) {
self.text('[标记失败(第一步:' + e['*'] + '),请在3秒后重试]');
window.setTimeout(function() {
self.replaceWith(backup);
mw.config.set('wgPatroling', false);
$('a.patrolLink').removeAtrr('style');
}, 3000);
} else {
var token = d.query.tokens.patroltoken;
$.ajax({
type: 'POST',
url: 'http://xilinghost.tk/wiki/api.php',
data: {
action: 'patrol',
format: 'json',
revid: revid,
token: token
},
error: function(o) {
self.text('[标记失败(第二步:' + o.status + ' - ' + o.statusText + '),请在3秒后重试]');
window.setTimeout(function() {
self.replaceWith(backup);
}, 3000);
},
success: function(d) {
if (d.error) {
self.text('[标记失败(第二步:' + d['*'] + '),请在3秒后重试]');
window.setTimeout(function() {
self.replaceWith(backup);
}, 3000);
} else {
self.text('[标记成功]');
window.setTimeout(function() {
var tbody = span.closest('tbody');
span.remove();
if (tbody[0]) {
var abbr = tbody.find('abbr'),
a = tbody.find('a.patrolLink');
if (!a[0]) abbr.remove();
}
}, 3000);
}
},
complete: function() {
window.setTimeout(function() {
mw.config.set('wgPatroling', false);
$('a.patrolLink').removeAttr('style');
}, 3000);
}
});
}
},
error: function(o) {
self.text('[标记失败(第一步:' + o.status + ' - ' + o.statusText + '),请在3秒后重试]');
window.setTimeout(function() {
self.replaceWith(backup);
mw.config.set('wgPatroling', false);
$('a.patrolLink').removeAttr('style');
}, 3000);
}
});
});
});
});