![刷新 刷新](/images/thumb/b/b0/OOjs_UI_icon_reload-progressive.svg/55px-OOjs_UI_icon_reload-progressive.svg.png)
请注意:更新本页面后,您可能需要清除浏览器缓存才能看到所作变更的影响。
Google Chrome、Microsoft Edge、Mozilla Firefox、Safari:按住⇧ Shift,同时单击“刷新”。
Google Chrome、Microsoft Edge、Mozilla Firefox、Safari:按住⇧ Shift,同时单击“刷新”。
![Cc.logo.circle.svg](/images/thumb/5/5d/CC_Logo.svg/40px-CC_Logo.svg.png)
![署名 署名](/images/thumb/1/11/Cc-by_new_white.svg/24px-Cc-by_new_white.svg.png)
![相同方式共享 相同方式共享](/images/thumb/d/df/Cc-sa_white.svg/24px-Cc-sa_white.svg.png)
本文件采用知识共享署名-相同方式共享 4.0 国际(CC BY-SA 4.0)许可协议授权。
- 您可以自由地:
- 分享 – 在任何媒介以任何形式复制、发行本作品
- 演绎 – 修改、转换或以本作品为基础进行创作
- 惟须遵守下列条件:
- 署名 – 您必须给出适当的署名(标明原作者),提供指向本许可协议的链接,同时标明是否(对原始作品)作了修改。您可以用任何合理的方式来署名,但是不得以任何方式暗示许可人为您或您的使用背书(即诱导原作者在不了解协议情况下给你授权)。
- 相同方式共享 – 如果您再混合、转换或者基于本作品进行创作,您必须基于与原先许可协议相同或相兼容的许可协议分发您贡献的作品。
/**
* SPDX-License-Identifier: CC-BY-SA-4.0
* _addText: '{{Gadget Header|license=CC-BY-SA-4.0}}'
*
* @source <https://git.qiuwen.wiki/InterfaceAdmin/Gadgets/src/branch/master/src/Gadgets/QuickPatrol>
* @base <https://meta.wikimedia.org/wiki/User:Xiplus/js/quick-patrol.js>
* @dependency mediawiki.api, mediawiki.util, ext.gadget.i18n
*/
/**
* +--------------------------------------------------------+
* | === WARNING: GLOBAL GADGET FILE === |
* +--------------------------------------------------------+
* | All changes should be made in the repository, |
* | otherwise they will be lost. |
* +--------------------------------------------------------+
* | Changes to this page may affect many users. |
* | Please discuss changes at talk page before editing. |
* +--------------------------------------------------------+
*/
/* <nowiki> */
(function () {
var i18nMessages = function i18nMessages() {
var _i18n = i18n,
localize = _i18n.localize;
return {
Patrol: localize({
'zh-hans': '巡查',
'zh-hant': '巡查'
}),
'Patrol all pages': localize({
'zh-hans': '巡查所有页面?',
'zh-hant': '巡查全部頁面?'
}),
'Patrol all pages?': localize({
'zh-hans': '确定巡查所有页面?',
'zh-hant': '確定巡查全部頁面?'
}),
Patrolled: localize({
'zh-hans': '已巡查',
'zh-hant': '已巡查'
}),
'Failed to purge cache. Please try again later': localize({
'zh-hans': '清除失败,请稍后重试',
'zh-hant': '清除失敗,請稍后重試'
}),
'API failure': localize({
'zh-hans': 'API失败',
'zh-hant': 'API失敗'
}),
'AJAX failure': localize({
'zh-hans': 'AJAX失败',
'zh-hant': 'AJAX失敗'
})
};
};
var messages = i18nMessages();
var message = function message(key) {
return messages[key] || key;
};
var patrol = function patrol() {
var btnid = this.getAttribute('data-btnid');
var revid = this.getAttribute('data-revid');
$.ajax({
type: 'POST',
url: "".concat(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) {
mw.notify("".concat(message('API failure'), "\uFF1A").concat(data.error.info), {
type: 'error',
tag: 'QuickPatrol'
});
document.getElementById("patrol_".concat(btnid)).style.color = '#F00';
} else {
document.getElementById("patrol_".concat(btnid)).innerHTML = message('Patrolled');
document.getElementById("patrol_".concat(btnid)).style['pointer-events'] = 'none';
document.getElementById("patrol_".concat(btnid)).style.color = '#888';
}
},
error: function error() {
mw.notify(message('AJAX failure'), {
type: 'error',
tag: 'QuickPatrol'
});
document.getElementById("patrol_".concat(btnid)).style.color = '#F00';
}
});
};
var partolall = function partolall() {
if (!confirm(message('Patrol all pages?'))) {
return;
}
for (var i = 0; i < document.getElementsByClassName('not-patrolled').length; i++) {
if (document.getElementById("patrol_".concat(i)).style['pointer-events'] !== 'none') {
document.getElementById("patrol_".concat(i)).click();
}
}
};
if (mw.config.get('wgCanonicalSpecialPageName') === 'Newpages') {
for (var i = 0; i < document.getElementsByClassName('not-patrolled').length; i++) {
var patrolbtn = $("<a>").attr({
id: "patrol_".concat(i),
'data-btnid': i,
'data-revid': document.getElementsByClassName('not-patrolled')[i].children[0].href.match(/oldid=(\d+)/)[1]
}).text(message('Patrol'));
patrolbtn.on('click', patrol);
patrolbtn.appendTo(document.getElementsByClassName('not-patrolled')[i]);
}
for (var _i = 0;; _i++) {
if (document.getElementById('mw-content-text').children[_i] === undefined) {
break;
} else if (document.getElementById('mw-content-text').children[_i].tagName === 'UL') {
var _patrolbtn = $('<li>').append($('<a>').attr('id', 'patrol_all').text(message('Patrol all pages')));
_patrolbtn.on('click', partolall);
_patrolbtn.appendTo(document.getElementById('mw-content-text').children[_i]);
}
}
}
})();
/* </nowiki> */