User:Sander Säde/quickpreview.js
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
importScript('User:TheFearow/qstring.js');
$(doAddQuickPreview);
function doAddQuickPreview() {
if ((mw.config.get('wgAction') != "edit") && (mw.config.get('wgAction') != "submit")) return;
var qbutton = document.getElementById("wpPreview").cloneNode(false);
qbutton.value = "Quick preview";
qbutton.type="button";
qbutton.tabindex="6";
qbutton.accessKey="g";
qbutton.id="dlQuickPreview";
qbutton.title="Preview your changes";
qbutton.addEventListener("click", doQuickPreview, false);
var referenceNode = document.getElementById("wpDiff");
referenceNode.parentNode.insertBefore(qbutton, referenceNode);
}
function doQuickPreview() {
var bt = document.getElementById("dlQuickPreview");
document.getElementById("contentSub").innerHTML = "Getting preview";
bt.value="Getting preview";
bt.disabled=true;
var form = document.editform;
var postData = {
'wpMinoredit': form.wpMinoredit.checked,
'wpWatchthis': form.wpWatchthis.checked,
'wpStarttime': form.wpStarttime.value,
'wpEdittime': form.wpEdittime.value,
'wpAutoSummary': form.wpAutoSummary.value,
'wpEditToken': form.wpEditToken.value,
'wpSummary': "Quick preview",
'wpTextbox1': document.editform.wpTextbox1.value
};
var addr = document.URL;
addr = addr.replace("&action=edit", "&action=submit");
addr += "&wpPreview=true&live=true";
var qwxmlhttp = sajax_init_object(null);
qwxmlhttp.overrideMimeType('text/xml');
qwxmlhttp.open( 'POST' , addr, true);
qwxmlhttp.setRequestHeader('Content-type','application/x-www-form-urlencoded');
qwxmlhttp.onload = function() {
document.getElementById("wikiPreview").innerHTML = unescape(qwxmlhttp.responseText.replace(/>/g,">").replace(/</g,"<").replace(/&/g,"&").replace(/"/g,'"'));
bt.disabled=false;
bt.value = "Quick preview";
document.getElementById("contentSub").innerHTML = "";
}
qwxmlhttp.send(QueryString.create(postData));
}