הערה: לאחר הפרסום, ייתכן שיהיה צורך לנקות את זיכרון המטמון (cache) של הדפדפן כדי להבחין בשינויים.

  • פיירפוקס / ספארי: להחזיק את המקש Shift בעת לחיצה על טעינה מחדש (Reload) או ללחוץ על צירוף המקשים Ctrl-F5 או Ctrl-R (במחשב מק: ⌘-R).
  • גוגל כרום: ללחוץ על צירוף המקשים Ctrl-Shift-R (במחשב מק: ⌘-Shift-R).
  • אינטרנט אקספלורר / אדג': להחזיק את המקש Ctrl בעת לחיצה על רענן (Refresh) או ללחוץ על צירוף המקשים Ctrl-F5.
  • אופרה: ללחוץ על Ctrl-F5.
function findLastEditByUser(text, id) {
 if (window.ActiveXObject) { // for IE
  var doc = new ActiveXObject("Microsoft.XMLDOM");
  doc.async = "false";
  doc.loadXML(text);
 } else { // for FF
  var parser = new DOMParser();
  var doc = parser.parseFromString(text, "text/xml");
 }
 var base = doc.documentElement.childNodes[0].childNodes[1].childNodes[0].childNodes[0];
 var firstVersion = base.childNodes[0].getAttribute('revid');
 if (firstVersion != id) {
  alert("זוהי לא הגרסה העדכנית האחרונה של דף זה. השחזור לא התבצע.");
  return;
 }
 var firstUser = base.childNodes[0].getAttribute('user');
 var version;
 var otherUser;
 for (var i = 1; i < base.childNodes.length; i++) {
    version = base.childNodes[i].getAttribute('revid');
    if (base.childNodes[i].getAttribute('user') != firstUser) {
      otherUser = base.childNodes[i].getAttribute('user');
      break;
    }
 }
 document.location = 'http://he.wikipedia.org/w/index.php?title=' + wgPageName + '&action=edit&oldid=' + version + '&fastrevert=1&username=' + encodeURIComponent(firstUser) + '&otheruser=' + encodeURIComponent(otherUser);
}

function saveOldPage() {
 if (getParamValue('fastrevert') != 1) return;
 var username = decodeURIComponent(getParamValue('username'));
 var otherUser = decodeURIComponent(getParamValue('otheruser'));
 document.editform.wpSummary.value = "שחזור מעריכה של [[מיוחד:תרומות/" + username + "|" + username + "]] לעריכה האחרונה של [[משתמש:" + otherUser + "|" + otherUser + "]]";
 document.editform.wpSave.click();
}

function saveFastRevert() {
 var a = sajax_init_object();
 a.open('GET', 'http://he.wikipedia.org/w/api.php?action=query&prop=revisions&titles=' + wgPageName + '&rvlimit=20&rvprop=user|ids&format=xml', true);
 a.onreadystatechange = function() {
  if (a.readyState != 4) return;
  findLastEditByUser(a.responseText, wgCurRevisionId);
 };
 a.send(null);
}

$(function () {
 if ( (wgNamespaceNumber == 0 || wgNamespaceNumber % 2 == 0) && getParamValue('diff') && !document.getElementById('differences-nextlink') ) {
  var as = document.getElementById('bodyContent').getElementsByTagName('TABLE')[0].getElementsByTagName('TD')[1].getElementsByTagName('A');
  for (var i=0; i < as.length; i++) {
   if (as[i].href.indexOf('&undo=') != -1) {
    var newA = document.createElement('a');
    newA.appendChild(document.createTextNode("שחזור"));
    newA.title = "שחזר ערך זה לגרסה שלפני העריכה של המשתמש האחרון";
    newA.href = "javascript:saveFastRevert();";
    var txt = document.createTextNode(' | ');
    as[i].parentNode.insertBefore(newA, as[i].nextSibling);
    as[i].parentNode.insertBefore(txt, as[i].nextSibling);
    break;
   }
  }
 }
});
$(saveOldPage);

importUserScript(64);