Замечание: Возможно, после публикации вам придётся очистить кэш своего браузера, чтобы увидеть изменения.

  • 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";
	});
});