ผู้ใช้:Bebiezaza/speedyPatrol.js
หมายเหตุ: หลังเผยแพร่ คุณอาจต้องล้างแคชเว็บเบราว์เซอร์ของคุณเพื่อดูการเปลี่ยนแปลง
- ไฟร์ฟอกซ์ / ซาฟารี: กด Shift ค้างขณะคลิก Reload หรือกด Ctrl-F5 หรือ Ctrl-R (⌘-R บนแมค)
- กูเกิล โครม: กด Ctrl-Shift-R (⌘-Shift-R บนแมค)
- ไมโครซอฟท์ เอดจ์: กด Ctrl ค้างขณะคลิก Refresh หรือกด Ctrl-F5
// speedyPatrol.js
//
// This is a user script which adds patrol button to new pages which need to be
// patrolled on Special:RecentChanges. This script loads only once when the
// special page is open. This means that this script is not compatible with
// live updates and refreshing through "view new changes".
//
// Author: Bebiezaza (for Thai Wikisource)
// <nowiki>
"use strict";
(function($, mw) {
if (mw.config.get('wgNamespaceNumber') !== -1 || mw.config.get('wgCanonicalSpecialPageName') !== "Recentchanges") return;
var $unPatrolled = $('abbr.unpatrolled');
$unPatrolled.each(function(index, element) {
var titleElement = $(element).parent().find("span.mw-title");
var title = titleElement.text();
var api = new mw.Api();
api.get({
action: 'query',
format: 'json',
list: 'recentchanges',
rcdir: 'newer',
rcprop: 'ids',
rctype: 'new',
rctitle: title
}).done(function(data) {
var rcID = data.query.recentchanges[0].rcid;
var patrolLink = document.createElement('a');
patrolLink.style = "font-weight: bold";
patrolLink.innerHTML = "<span style='color: black;'>[</span><span style='color: saddleBrown;'>mark as patrolled</span><span style='color: black;'>]</span>";
var patrolSpan = document.createElement('span');
patrolSpan.id = "patrol-" + rcID;
patrolSpan.append(patrolLink);
$(titleElement).prepend(" ");
$(titleElement).prepend(patrolSpan);
$(patrolLink).click(function() {
api.postWithToken('patrol', {
action: 'patrol',
rcid: rcID
}).done(function() {
mw.notify(title + " has been marked as patrolled");
$(patrolSpan).remove();
$(element).remove();
});
});
});
});
})(jQuery, mediaWiki);
// </nowiki>