Szerkesztő:Tgr/vandal.js

A Wikipédiából, a szabad enciklopédiából

Megjegyzés: közzététel után frissítened kell a böngésződ gyorsítótárát, hogy lásd a változásokat.

  • Firefox / Safari: tartsd lenyomva a Shift gombot és kattints a Frissítés gombra a címsorban, vagy használd a Ctrl–F5 vagy Ctrl–R (Macen ⌘–R) billentyűkombinációt
  • Google Chrome: használd a Ctrl–Shift–R (Macen ⌘–Shift–R) billentyűkombinációt
  • Internet Explorer / Edge: tartsd nyomva a Ctrl-t, és kattints a Frissítés gombra, vagy nyomj Ctrl–F5-öt
  • Opera: Nyomj Ctrl–F5-öt
var ggRollbackDelay = 1000; // ms

function getQueryParam(url, param) {
  var query = url.split('#')[0];
  var r = new RegExp("[?&]" + encodeURIComponent(param) + "=([^&]+)");
  var m = query.match(r);
  if (!m) return null;
  else return decodeURIComponent(m[1]);
}

function ajaxRollback() {
  var link = this;
  link.className = link.className.replace(/\bapi-(working|success|error|error-\w+)\b/g, '');
  link.className = link.className.replace(/\s+$/, '');
  link.className += ' api-working';
  var params = {
    action:     'rollback',
    title:      getQueryParam(link.href, 'title'),
    user:       getQueryParam(link.href, 'from'),
    token:      getQueryParam(link.href, 'token')
  };
  if (getQueryParam(link.href, 'bot')) params.markbot = 1;
  call_api(params, function(response) {
    if (response.error) {
      link.className = link.className.replace(/\bapi-working\b/, 'api-error api-error-'+response.error.code);
      link.title = response.error.info;
    } else {
      link.className = link.className.replace(/\bapi-working\b/, 'api-success');
    }
  }, "POST");
  return false;
}

function rollbackAll() {
  $('#rollback-all').attr('disabled', true).text('Folyamatban...');
  var links = $('.mw-rollback-link a.rollback');
  var i = 0;
  function doRollback() {
    if (i < links.length) {
      ajaxRollback(links[i++]);
      setTimeout(doRollback, ggRollbackDelay);
    } else {
      $('#rollback-all').remove();
    }
  }
  doRollback();
}

function installBotRollback() {
  $('.mw-rollback-link').each(function(i, span) {
    var rollbackLink = $(span).find('a:eq(0)');
    rollbackLink.attr('class', 'rollback');
    var botLink = $('<a>').attr({title: "Visszaállítás bot módban", href: rollbackLink.attr('href').replace("&action=rollback", "&action=rollback&bot=1"), class: "bot-rollback"}).text("bot");
    rollbackLink.after(botLink).after(' | ');
    rollbackLink.click(ajaxRollback);
    botLink.click(ajaxRollback);
  });
  var rollbackAllDiv = $('<div>').css('float', 'right').appendTo($('.firstHeading'));
  var rollbackAllButton = $('<button>').attr('id', 'rollback-all').text('Összes visszaállítása');
  rollbackAllButton.appendTo(rollbackAllDiv);
  rollbackAllButton.click(rollbackAll);
}

if (
    wgAction=='history' 
    || wgCanonicalNamespace == 'Special' 
      && $.inArray(wgCanonicalSpecialPageName, ['Contributions']) != -1
  ) {
  addOnloadHook(installBotRollback);
}