Участник:Lingüista/diffChecker.js
Замечание: Возможно, после публикации вам придётся очистить кэш своего браузера, чтобы увидеть изменения.
- Firefox / Safari: Удерживая клавишу Shift, нажмите на панели инструментов Обновить либо нажмите Ctrl+F5 или Ctrl+R (⌘+R на Mac)
- Google Chrome: Нажмите Ctrl+Shift+R (⌘+Shift+R на Mac)
- Internet Explorer / Edge: Удерживая Ctrl, нажмите Обновить либо нажмите Ctrl+F5
- Opera: Нажмите Ctrl+F5.
var diffCheckerSummary = 'Новая правка к досмотру';
var diffCheckerSubmissionSummary = 'Правка проверена и опубликована';
var diffCheckerEditApproved = 'Правка допущена';
var diffCheckerEditDeclined = 'Правка отклонена';
function getAbuseID(articleName, userName, hook) {
$.getJSON(
"/w/api.php?action=query&list=abuselog&afltitle=" +
encodeURIComponent(articleName) +
"&afluser=" + encodeURIComponent(userName) +
"&aflprop=ids&format=json",
function(data) {
hook(data.query.abuselog[0].id);
})
}
function checkoutTo(abuseID) {
window.location.href = "/wiki/Служебная:Журнал_злоупотреблений/" +
abuseID.toString() + "?_diffCheckerAction=view&_importFrom=" + mw.config.get("wgPageName");
}
function getAndCheckout(articleName, userName) {
getAbuseID(articleName, userName, checkoutTo);
}
/* diffCheckerAction=view */
if (/_diffCheckerAction=view/g.test(window.location.href)) {
$("#mw-content-text").prepend('<span class="mw-ui-button mw-ui-progressive allow-edit" role="button" style="margin-left:20px">Допустить правку</span>');
$("#mw-content-text").prepend('<span class="mw-ui-button mw-ui-destructive decline-edit" role="button" style="">Отклонить правку</span>');
}
$(".sysop-diff-check span a").click(function(e){
e.preventDefault();
getAndCheckout($(".diff_article").text(), $(".diff_username").text());
})
if($(".throw-inspection-warning").length > 0) {
var myContent = $("#wpTextbox1").val();
myContent = "{{досмотр-дифф|user="+mw.config.get("wgUserName")+"|article="+mw.config.get("wgPageName")+"}}" + "\n" + myContent;
var targetTitle = 'Викисловарь:Досмотр правок/' + mw.config.get("wgPageName") + '/' + mw.config.get("wgUserName");
var params = {
action: 'edit',
title: targetTitle,
text: myContent,
summary: diffCheckerSummary,
format: 'json'
},
api = new mw.Api();
api.postWithToken( 'csrf', params ).done( function ( data ) {
window.location.href = "/wiki/" + encodeURIComponent(targetTitle);
} );
}
$(".allow-edit").click(function() {
var importFrom = decodeURIComponent(window.location.href).match(/_importFrom=.+/g)[0].slice(12);
cparams = {
action: 'query',
prop: 'revisions',
titles: [importFrom],
rvslots: '*',
rvprop: 'content',
formatversion: 2
};
dparams = {
action: 'delete',
title: importFrom,
reason: diffCheckerEditApproved
};
api = new mw.Api();
api.get(cparams).done(function(data){
newVers = data.query.pages[0].revisions[0].slots.main.content;
newVers = newVers.split("\n").slice(1).join("\n");
pageToEdit = importFrom.replace(/^.*?\/|\/.+/g, "");
eparams = {
action: 'edit',
title: pageToEdit,
text: newVers,
summary: diffCheckerSubmissionSummary,
format: 'json'
};
api = new mw.Api();
api.postWithToken( 'csrf', eparams ).done( function ( data ) {
window.location.href = "/wiki/" + encodeURIComponent(pageToEdit);
} );
api.postWithToken( 'csrf', dparams );
})
});
$(".decline-edit").click(function() {
var importFrom = decodeURIComponent(window.location.href).match(/_importFrom=.+/g)[0].slice(12);
dparams = {
action: 'delete',
title: importFrom,
reason: diffCheckerEditDeclined
};
api.postWithToken( 'csrf', dparams ).done(function(data) {
window.location.href = "/wiki/Special:RecentChanges";
});
});