User:Writ Keeper/Scripts/previewAndDiff.js

$(document).ready(function {	if(mw.config.get("wgAction") === "edit" || mw.config.get("wgAction") === "submit" )	{		if(/previewanddiff=true/.test(window.location.href))		{			mw.loader.load('mediawiki.diff.styles');			$("#wikiPreview").before(' Your changes ');			var diffData = {action:"query", prop:"revisions", format:"json", rvcontentformat:"text/x-wiki", revids:$("input[name='baseRevId']").attr("value"), rvdifftotext:$("textarea#wpTextbox1").text};			var wpSectionElement = $("input[name='wpSection']");			if(typeof wpSectionElement.attr("value") !== "undefined")			{				diffData.rvsection = wpSectionElement.attr("value");			}			var mwApi = new mw.Api;			mwApi.post(diffData).done(function (response) {				$("#ajaxDiff").append(response.query.pages[Object.keys(response.query.pages)[0]].revisions[0].diff["*"]); });		}

mw.loader.using('oojs-ui').then(function {			var previewDiffButton = new OO.ui.ButtonInputWidget({label:'Show preview and changes', useInputTag: true, value: 'wpPreview', name: 'wpPreview', type:"submit", accessKey:"o", tabIndex: ($("#wpDiff").prop("tabIndex") + 1)});			previewDiffButton.setTitle("Show a preview of your changes, as well as a diff of what you changed");			$("#wpDiffWidget").after(previewDiffButton.$element);			previewDiffButton.$element.children("input").click(function {				var formAction = $("#editform").attr("action"); $("#editform").attr("action", formAction+"&previewanddiff=true"); });		});	} });