Uporabnik:Dbc334/inlinediff.js

Iz Wikipedije, proste enciklopedije

Opomba: Da bodo spremembe prišle do veljave, po objavi izpraznite predpomnilnik svojega brskalnika.

  • Firefox/Safari: Držite Shift in kliknite Znova naloži (Reload) ali pritisnite Ctrl + Shift + R ali Ctrl + R (⌘ + R v sistemu Mac)
  • Internet Explorer/Edge: Držite Ctrl + F5 in kliknite Osveži (Refresh) ali pritisnite Ctrl + F5
  • Google Chrome: Pritisnite Ctrl + Shift + R (⌘ + Shift + R v sistemu Mac)
  • Opera: Pritisnite Ctrl + F5.
function InlineDiff_initialise() {
  var rcList = document.getElementsByTagName('ul')[0].getElementsByTagName('li');
  for(i = 0; i < rcList.length; i++) {
    var rcCurrentURL = rcList[i].getElementsByTagName('a')[0].href;
    if(rcCurrentURL.indexOf('&diff=') != -1) {
      var rcDiff = rcCurrentURL.substring(rcCurrentURL.indexOf('&diff=')+6, rcCurrentURL.indexOf('&oldid='));
      var rcOldid = rcCurrentURL.substring(rcCurrentURL.indexOf('&oldid=')+7);
      InlineDiff_attachClick(rcList[i], rcDiff, rcOldid);
    }
  }

  importStylesheetURI('//bits.wikimedia.org/'+window.location.host+'/load.php?debug=false&lang='+mw.user.options.get('language')+'&modules=mediawiki.action.history.diff&only=styles&skin='+mw.user.options.get('skin')+'&*');
}

function InlineDiff_attachClick(entryDOM, diff, oldid) {
  entryDOM.id = 'rcChange' + diff;
  entryDOM.getElementsByTagName('a')[0].onclick = function() {return InlineDiff_showDiff(diff, oldid);};
}

function InlineDiff_showDiff(diff, oldid) {
  if(document.getElementById('rcDiff' + diff)) {
    var rcDiffTag = document.getElementById('rcDiff' + diff);
    rcDiffTag.style.display = (rcDiffTag.style.display=='none'?'':'none');
  } else {
    var rcLinkResult = document.createElement('li');
    rcLinkResult.id = 'rcDiff' + diff;
    rcLinkResult.style.width = '100%';
    rcLinkResult.style.textAlign = 'center';

    var rcLoadingImage = new Image(18, 18);
    rcLoadingImage.src = '//upload.wikimedia.org/wikipedia/commons/4/42/Loading.gif';
    rcLinkResult.appendChild(rcLoadingImage);

    var rcList = document.getElementsByTagName('ul')[0];
    var rcLink = document.getElementById('rcChange' + diff);
    rcList.replaceChild(rcLinkResult, rcLink);
    rcList.insertBefore(rcLink, rcLinkResult);

    InlineDiff_fetchDiff(diff, oldid);
  }

  return false;
}

function InlineDiff_fetchDiff(diff, oldid) {
  $.ajax({
    url: '/w/index.php?action=render&diffonly=yes&diff='+diff+'&oldid='+oldid,
    success: function(returnData) {
      document.getElementById('rcDiff' + diff).style.textAlign = '';
      document.getElementById('rcDiff' + diff).innerHTML = returnData;
      window.location.hash = '#rcChange' + diff;
    }
  });
}

if(wgCanonicalSpecialPageName == 'Recentchanges') {
  addOnloadHook(InlineDiff_initialise);
}