User:Sander Säde/quickpreview.js

From OpenWetWare
Jump to navigationJump to search

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
importScript('User:TheFearow/qstring.js');

addOnloadHook(doAddQuickPreview);
 
function doAddQuickPreview() {
  if ((wgAction != "edit") && (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); 
  document.getElementById("wpPreview").parentNode.insertBefore(qbutton,document.getElementById("wpDiff"));
}


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(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&amp;/g,"&").replace(/&quot;/g,'"'));
  bt.disabled=false;
  bt.value = "Quick preview";
  document.getElementById("contentSub").innerHTML = "";
  }
  qwxmlhttp.send(QueryString.create(postData));
}