MediaWiki:Gadget-patrol-button.js

De La Coppermind
Ir a la navegación Ir a la búsqueda

Nota: tras guardar, quizás necesites actualizar la caché de tu navegador para ver los cambios.

  • Firefox/Safari: Mantén presionada la tecla Mayús mientras pulsas el botón Actualizar, o presiona Ctrl+F5 o Ctrl+R (⌘+R en Mac)
  • Google Chrome: presiona Ctrl+Shift+R (⌘+Mayús+R en Mac)
  • Internet Explorer: mantén presionada Ctrl mientras pulsas Actualizar, o presiona Ctrl+F5
  • Opera: dirígete a Menú → Configuración (Opera → Preferencias en Mac) y luego a Privacidad y seguridad → Borrar datos de navegación → Imágenes y archivos en caché.
mw.hook('wikipage.diff').add(function patrol_button(){

// load the notify function
mw.loader.load('mediawiki.notification');
const to_secs = 5
// create an api client
const api = new mw.Api()
// the old "button"
const old = document.querySelector('.patrollink')
if (!old) { return }
// fetch the current RC id for the later request
const rcid = mw.util.getParamValue('rcid', old.firstElementChild.href)
// setup the new button
const btn = document.createElement('button')
btn.textContent = 'Patrol'
btn.addEventListener('click', function patrol_clicked() {
  // progress spinnner
  const spin = ($.createSpinner({ size: 'small', display: 'inline', }))[0]
  btn.replaceWith(spin)
  api.postWithToken('patrol', {
    formatversion: 2,
    action: 'patrol',
    rcid: rcid,
  }).done(function patrolled(data) {
    if (data.patrol !== undefined) {
      const title = new mw.Title(data.patrol.title);
      mw.notify(mw.msg('markedaspatrollednotify', title.toText()));
      spin.remove()
    } else {
      mw.notify(mw.msg('markedaspatrollederrornotify'), { type: 'error' });
      spin.replaceWith(btn)
    }
  }).fail(function patrol_fail(error) {
    console.warn('patrol:', error)
    if (error === 'noautopatrol') {
      mw.notify(mw.msg('markedaspatrollederror-noautopatrol'), { type: 'warn' });
    } else {
      mw.notify(mw.msg('markedaspatrollederrornotify'), { type: 'error' });
    }
    spin.replaceWith(btn)
  })
})
// hide old button and show new one
old.replaceWith(btn)


})