MediaWiki:Gadget-reversion.js

Nota: Después de guardar, debes refrescar la caché de tu navegador para ver los cambios. Internet Explorer: mantén presionada Ctrl mientras pulsas Actualizar. Firefox: mientras presionas Mayús pulsas el botón Actualizar, (o presiona Ctrl-Shift-R). Los usuarios de Google Chrome y Safari pueden simplemente pulsar el botón Recargar. Para más detalles e instrucciones acerca de otros exploradores, véase Ayuda:Cómo limpiar la caché.

/*
 * Reversión
 * Fuente: //en.wiki.x.io/wiki/Usuario:Lorian/monobook.js y [[Usuario:Axxgreazz/Monobook-Suite]]
 * <nowiki>
 */
// Protege contra doble inclusión
if ( window.reversion === undefined ) {

    //Enlaza con window
    var reversion = {
        lista: ["k", "prueba", "prueba", "prueba0a", "prueba0b", "prueba0c",
                "prueba2", "prueba2a", "prueba3","planvand", "prueba4", "prueba5", "bienvenida"],
        listaMensajes: ["Prueba", "Wikietiqueta", "Estilo", "Spam", "Arbitrariedad",
                "Blanqueo", "Detente","Primera y última advertencia", "Última advertencia", "Bloqueo", "Bienvenido"]
    };
    window.reversion = reversion;

    //Scope local para no contaminar espacio global
    (function ( $, mw ) {
        'use strict';

        reversion.darMensaje = function ( where, user1, user2, oldid ) {
            var message = window.prompt( 'Mensaje' + ':', '' );
            if ( message != null ) {
                window.location.href = mw.util.wikiScript( 'index' ) + '?title=' +
                    mw.util.getParamValue( 'title' ) + '&action=edit&oldid=' + oldid +
                    '&' + where + '=2&user1=' + user1 + '&user2=' + user2 +
                    '&message=' + message;
            }
            return false;
        };

        function install() {
            if ( mw.util.getParamValue( 'diff' ) ) {
                // Get username of submitter
                var user1 = document.getElementById( 'mw-diff-otitle2' );
                if ( user1 ) {
                    user1 = user1.getElementsByTagName( 'a' )[0];
            		if(!user1) return;

                    var diffTitle2 = document.getElementById( 'mw-diff-ntitle2' ),
            			user2 = diffTitle2 ? diffTitle2.getElementsByTagName( 'a' )[0] : null,
                        oldid = mw.util.getParamValue( 'oldid', document.getElementById( 'mw-diff-otitle1' )
                            .getElementsByTagName( 'a' )[0] ),
                        msAviTemp = '',
                        separador = ' / ',
                        largoListaMensajes = reversion.listaMensajes.length,
                        i;
                        if(!user2) return;

                        user1 = user1.innerText || user1.textContent;
                        user2 = user2.innerText || user2.textContent;
						
                    for ( i = 0; i < largoListaMensajes; i++ ) {
                        if ( i == largoListaMensajes - 1 ) {
                            separador = '';
                        }
                        msAviTemp = msAviTemp + '<a href="' + mw.util.wikiScript( 'index' ) +
                            '?title=User_talk:' + user2 + '&action=edit&warnMS=' + i + '&titleP=' +
                            mw.config.get( 'wgPageName' ).replace( /_/g, ' ' ) + '">' +
                            reversion.listaMensajes[i] + '</a>' + separador;
                    }

					// Workaround for https://phabricator.wikimedia.org/T315639
					// Can be removed when API is made available T316830
					if(!document.getElementById('contentSub')) {
						$('<div id="contentSub"></div>').insertBefore('#mw-content-text');
					}
                    document.getElementById( 'contentSub' ).innerHTML = '(<a href="' +
                        mw.util.wikiScript( 'index' ) + '?title=' + mw.util.getParamValue( 'title' ) +
                        '&action=edit&oldid=' + oldid + '&revertMS=1&user1=' + user1 + '&user2=' + user2 +
                        '">' + 'Revertir' + '</a> / ' +
                        '<a href="#" onclick="return reversion.darMensaje(\'revertMS\', \'' + user1 +
                        '\', \'' + user2 + '\', \'' + oldid + '\');">' + 'Mensaje' + '</a>) ' +
                        '(Aviso a usuarios: ' + msAviTemp + ')';
                }
            } else if ( mw.util.getParamValue( 'revertMS' ) == 1 ) {
                $( '#wpSummary' ).val( 'Revertidos los cambios de [[Special:Contributions/' +
                    mw.util.getParamValue( 'user2' ) + '|' + mw.util.getParamValue( 'user2' ) +
                    ']] a la última edición de [[Special:Contributions/' + mw.util.getParamValue('user1') + '|' +
                    mw.util.getParamValue('user1') + ']]' );
                document.getElementById('wpMinoredit').checked = true;
                $( '#editform' ).submit();
            } else if ( mw.util.getParamValue( 'revertMS' ) == 2 ) {
                $( '#wpSummary' ).val( 'Revertidos los cambios de [[Special:Contributions/' +
                    mw.util.getParamValue( 'user2' ) + '|' + mw.util.getParamValue( 'user2' ) +
                    ']] a la última edición de [[Special:Contributions/' + mw.util.getParamValue('user1') + '|' +
                    mw.util.getParamValue('user1') + ']] (' + mw.util.getParamValue( 'message' ) + ')' );
                document.getElementById('wpMinoredit').checked = true;
                $( '#editform' ).submit();
            } else if ( mw.config.get( 'wgCanonicalNamespace' ) == 'User_talk' && mw.config.get( 'wgAction' ) == "edit" && mw.util.getParamValue( 'warnMS' ) !== null ) {
                var indice = parseInt( location.href.substring( location.href.indexOf( "&titleP=" ) - 1,
                         location.href.indexOf( "&titleP=" ) ), 10 ),
                    parametros = '';
                if ( indice == 0 ) {
                    parametros = '|' + mw.util.getParamValue( 'titleP' );
                }

                $( '#wpSummary' ).val( 'Aviso al usuario' );
                $( '#wpTextbox1' ).val( $( '#wpTextbox1' ).val() + '\n{{subst:' + reversion.lista[indice + 2] + parametros + '}} --~~~~' );
                $( '#editform' ).submit();
            }
        }

        $(document).ready( install );

    })( jQuery, mediaWiki ); // Fin de función anónima
} //fin de chequeo
//</nowiki>