User:Liangent/Gadgets/Toolkit/patrol.uncompressed.js
注意:保存之后,你必须清除浏览器缓存才能看到做出的更改。Google Chrome、Firefox、Microsoft Edge及Safari:按住⇧ Shift键并单击工具栏的“刷新”按钮。参阅Help:绕过浏览器缓存以获取更多帮助。
require(['jquery', 'mediawiki'], function() {
jQuery(function() {
var page = new MediaWiki.Page();
// patrol edit
if ((wgAction == 'edit' || wgAction == 'submit') && wgArticleId != 0) { // edit & preview
// wgArticleId != 0: article exists. if so, patrolled must be true?
// should this be fixed? and before fixing, wgArticleId != 0 is not needed?
// following if (!patrolled) can stop the checkbox from being added?
page.patrolled({}, function(patrolled) {
if (!patrolled) {
jQuery('#wpMinoredit').before(
'<input type="checkbox" id="wpPatroledit" accesskey="a" /> ' +
'<label for="wpPatroledit" title="Mark this page as patrolled before saving [a]">' +
'Patrol before saving</label>\n'
);
}
});
jQuery('#wpSave').click(function(event) {
// if patrolled, #wpPatroledit doesn't exist,
// so jQuery('#wpPatroledit:checked').length always == 0
if (jQuery('#wpPatroledit:checked').length != 0) {
event.preventDefault();
jQuery('#wpSave').attr('disabled', true);
var oldval = jQuery('#wpSave').val();
jQuery('#wpSave').val('Patrolling...');
new MediaWiki.Page().patrol({}, function() {
jQuery('#wpSave').val('Saving...');
jQuery('#editform')[0].submit();
}, function() {
if (confirm('Patrolling failed. Save anyway?')) {
jQuery('#wpSave').val('Saving...');
jQuery('#editform')[0].submit();
} else {
jQuery('#wpSave').val(oldval);
// #wpSave is always enabled when page is loaded,
// or does not appear. and $('#wpSave').click cannot be triggered.
jQuery('#wpSave').attr('disabled', false);
}
});
}
});
}
// patrol any page
if ((wgAction == 'view' || wgAction == 'purge') && wgNamespaceNumber >= 0) {
page.patrolled({}, function(patrolled) {
if (!patrolled) {
jQuery('.printfooter').before(
'<div class="patrollink">[<a href="#" ' +
'class="ajaxpatrollink">Mark this page as patrolled</a>]</div>'
);
jQuery('.ajaxpatrollink').click(function() {
page.patrol({}, function() {
jQuery('.ajaxpatrollink').replaceWith('patrolled');
}, function() {
alert('Failed to patrol. Maybe this page is too old or already patrolled.');
});
return false;
});
}
});
}
// patrol link on [[Special:NewPages]]
if (wgCanonicalSpecialPageName == 'Newpages') {
jQuery('li.not-patrolled').each(function() {
var litag = this;
var pageaj = jQuery(jQuery('a', litag)[0]);
pageaj.after(
'<span style="vertical-align: super;">(<a href="#" class="newpages_patrollink">patrol</a>)</span>'
);
var patrolaj = jQuery('a.newpages_patrollink', litag);
patrolaj.click(function() {
new MediaWiki.Page(pageaj.text()).patrol({}, function() {
patrolaj.replaceWith('patrolled'); // or simply remove the span?
jQuery(litag).removeClass('not-patrolled');
}, function() {
alert('Failed to patrol [[' + pageaj.text() +
']]. Maybe this page is too old or already patrolled.');
});
return false;
});
});
}
});
});