用戶:ChasingAir/js/Quick-Patrol.js
< 用戶:ChasingAir | js
注意: 保存之後, 倷要清吥瀏覽器嗰緩存才眵得正改嗰內容。 Mozilla / Firefox / Safari: 按到 Shift 接到按刷新(或按吖Ctrl-Shift-R,到蘋果Mac上按Cmd-Shift-R);IE: 按到 Ctrl接到按刷新,或按吖Ctrl-F5;Konqueror: 單只要按 刷新;Opera: 用戶要到 工具-設置 完全嗰清除緩存。
// 复制并修改自[[Meta:User:Xiplus/js/quick-patrol.js]]
// <nowiki>
(function() {
function patrol() { // eslint-disable-line no-unused-vars
let btnid = this.getAttribute('data-btnid');
let revid = this.getAttribute('data-revid');
$.ajax({
type: 'POST',
url: location.protocol + mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php',
data: {
'action': 'patrol',
'format': 'json',
'revid': revid,
'token': mw.user.tokens.get('patrolToken')
},
success: function success(data) {
if (data.error !== undefined) {
document.all["patrol_" + btnid].innerHTML = "API失败:" + data.error.info;
document.all["patrol_" + btnid].style.color = "#F00";
} else {
document.all["patrol_" + btnid].innerHTML = "已巡查";
document.all["patrol_" + btnid].style["pointer-events"] = "none";
document.all["patrol_" + btnid].style.color = "#888";
}
},
error: function error() {
document.all["patrol_" + btnid].innerHTML = "Ajax失败";
document.all["patrol_" + btnid].style.color = "#F00";
}
});
}
function partolall() { // eslint-disable-line no-unused-vars
if (!confirm("确定巡查全部,共" + document.getElementsByClassName("not-patrolled").length + "个?"))
return;
for (var i = 0; i < document.getElementsByClassName("not-patrolled").length; i++) {
if (document.all["patrol_" + i].style["pointer-events"] != "none") {
document.all["patrol_" + i].click();
}
}
}
if (mw.config.get('wgCanonicalSpecialPageName') === "Newpages") {
for (var i = 0; i < document.getElementsByClassName("not-patrolled").length; i++) {
let patrolbtn = $('<a id="patrol_' + i + '" data-btnid="' + i + '" data-revid="' + document.getElementsByClassName("not-patrolled")[i].children[0].href.match(/oldid=(\d+)/)[1] + '">标记该页面为已巡查</a>');
patrolbtn.on('click', patrol);
patrolbtn.appendTo(document.getElementsByClassName("not-patrolled")[i]);
}
for (var i = 0; ; i++) {
if (document.all["mw-content-text"].children[i] === undefined) {
break;
} else if (document.all["mw-content-text"].children[i].tagName === "UL") {
let patrolbtn = $('<li><a id="patrol_all">巡查全部页面</a></li>');
patrolbtn.on('click', partolall);
patrolbtn.appendTo(document.all["mw-content-text"].children[i]);
}
}
}
}
)();
// </nowiki>