MediaWiki:Gadget-rollback-button.js
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é.
function convert_to_button(element) { mw.loader.load('jquery.spinner') mw.loader.load('mediawiki.notification'); const api = new mw.Api; const self = document.createElement('button') const a = element.querySelector('a') const url = new mw.Uri(a.getAttribute('href')) const user = url.query.from const page = url.path.split('/').slice(2).join('/') console.debug('rollback:', { page: page, user: user, }) self.textContent = a.innerText self.classList.add('rollback-btn') self.onclick = function confirm_rollback(ev) { if (!confirm('rollback changes to '+ page +' by '+ user +'?')) return ///---- const spin = ($.createSpinner({ size: 'small', display: 'inline', }))[0] self.replaceWith(spin) // https://doc.wikimedia.org/mediawiki-core/master/js/#!/api/mw.Api.plugin.rollback api.rollback(page, user).done(function rolled_back(value) { console.log('rolled back:', value) mw.notify('rolled back changes to '+ page +' by '+ user +'!'); }).fail(function bad_rollback(error) { console.warn('rollback:', error) spin.replaceWith(self) }) ///---- } element.replaceWith(self) } // rollback button on diff pages mw.hook('wikipage.diff').add(function rollback_on_diff(){ const links = document.querySelectorAll('.mw-rollback-link') if (!links.length) { return } console.debug('gadget:', 'rollback-button (DIFF)', links) links.forEach(convert_to_button) }) // TODO: recent changes mw.hook('Special:RecentChanges').add(function rollback_on_rc() { const links = document.querySelectorAll('.mw-rollback-link') if (!links.length) { return } console.debug('gadget:', 'rollback-button (RC)', links) links.forEach(convert_to_button) }) // TODO: history pages mw.hook('mw-action.history').add(function rollback_on_history() { const links = document.querySelectorAll('.mw-rollback-link') if (!links.length) { return } console.debug('gadget:', 'rollback-button (HISTORY)', links) links.forEach(convert_to_button) })