Usuario:LuchoCR/previewAndDiff.js
Nota: Después de guardar, debes refrescar la caché de tu navegador para ver los cambios. Internet Explorer: mantén presionada Ctrl mientras pulsas Actualizar. Firefox: mientras presionas Mayús pulsas el botón Actualizar, (o presiona Ctrl-Shift-R). Los usuarios de Google Chrome y Safari pueden simplemente pulsar el botón Recargar. Para más detalles e instrucciones acerca de otros exploradores, véase Ayuda:Cómo limpiar la caché.
mw.hook('wikipage.content').add(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('<h2>Your changes</h2><table class="diff" id="ajaxDiff"><colgroup><col class="diff-marker"><col class="diff-content"><col class="diff-marker"><col class="diff-content"></colgroup></table>');
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["*"]);
});
}
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");
});
}
});