MediaWiki:Gadget-OcultarReferencias.js

De Wikipedia, la enciclopedia libre

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é.

/**
 * Oculta referencias
 * <nowiki>
 */
if ( mw.config.get( 'wgNamespaceNumber' ) >= 0 ) {

    var ocultarReferencias = {};
    window.ocultarReferencias = ocultarReferencias;
 
    //Scope local para no contaminar espacio global
    (function ( $, mw ) {
        'use strict';

        if( mw.config.get( 'wgAction' ) != 'edit' ) {
            ocultarReferencias.click = false;
            ocultarReferencias.ocultar = function () {
                if ( ocultarReferencias.click ) {
                    mw.util.addCSS( 'sup.reference {display:inline} ol.references, .ocultarefs {display:block}' );
                    $( '#c-ocultarefs' ).children().text( 'ocultar refs' );
                    ocultarReferencias.click = false;
                } else {
                    mw.util.addCSS( 'sup.reference, ol.references, .ocultarefs {display:none}' );
                    $( '#c-ocultarefs' ).children().text( 'mostrar refs' );
                    ocultarReferencias.click = true;
                }
            };
            ocultarReferencias.install = function () {
                mw.util.addPortletLink( 'p-cactions', '#', 'ocultar refs', 'c-ocultarefs', 'Oculta las referencias en la página' );
                $( '#Referencias' ).parent().addClass('ocultarefs');
                $( '#c-ocultarefs' ).click( ocultarReferencias.ocultar );
            };
            $( document ).ready( ocultarReferencias.install );
        }

        if( $.inArray( mw.config.get( 'wgAction' ), ['edit', 'submit'] ) > -1 ) {
            ocultarReferencias.savedRefs = [];
            ocultarReferencias.updateMessage = function () {
                var regExp = /Referencias ocultas: [0-9]* \(<a href="#" onclick="return ocultarReferencias\.click\(\);">(mostrar|ocultar)<\/a>\)/,
                    newMessage = 'Referencias ocultas: ' + ocultarReferencias.savedRefs.length +
                        ' (<a href="#" onclick="return ocultarReferencias.click();">' +
                        (ocultarReferencias.savedRefs.length == 0 ? 'ocultar' : 'mostrar') + '</a>)';
                document.getElementById('contentSub').innerHTML = document.getElementById('contentSub').innerHTML.replace( regExp, newMessage );
            };
            ocultarReferencias.showRefs = function () {
                var pageText = document.getElementById("wpTextbox1").value;
                for ( var i = 0; i < ocultarReferencias.savedRefs.length; i++ ) {
                    pageText = pageText.replace( "<!R" + i + ">", ocultarReferencias.savedRefs[i] );
                }
                document.getElementById("wpTextbox1").value = pageText;
                ocultarReferencias.savedRefs = [];
            };
            ocultarReferencias.hideRefs = function () {
                var regExp = new RegExp('<ref name=[^>]*/>|<ref( (name|group)=[^>/]*)?>.*?</ref>', 'g'),
                	textBox = document.getElementById("wpTextbox1"),
                    pageText = textBox ? textBox.value : '',
                    matches = pageText.match( regExp );

                    if ( matches != null && textBox ) {
                        for ( var i = 0; i < matches.length; i++ ) {
                            ocultarReferencias.savedRefs.push( matches[i] );
                            pageText = pageText.replace( matches[i], "<!R" + i + ">" );
                        }
                        textBox.value = pageText;
                    }
            };
            ocultarReferencias.toggleRefs = function () {
                if ( ocultarReferencias.savedRefs.length > 0 ) {
                    ocultarReferencias.showRefs();
                } else {
                    ocultarReferencias.hideRefs();
                }
            };
            ocultarReferencias.click = function () {
                ocultarReferencias.toggleRefs();
                ocultarReferencias.updateMessage();
                return false;
            };
            ocultarReferencias.submitListener = function (event) {
                $( '#editform' ).on( 'submit', function() {
                    ocultarReferencias.showRefs();
                    this.submit();
                } );
            };
            ocultarReferencias.install2 = function () {
                if ( document.getElementById('contentSub').innerHTML ) {
                    document.getElementById('contentSub').innerHTML += '<br>';
                }
                document.getElementById('contentSub').innerHTML += 'Referencias ocultas: 0 ' +
                    '(<a href="#" onclick="return ocultarReferencias.click();">ocultar</a>)';
                ocultarReferencias.hideRefs();
                ocultarReferencias.updateMessage();
                ocultarReferencias.submitListener();
            };
            $( document ).ready( ocultarReferencias.install2 );
        }
    })( jQuery, mediaWiki ); // Fin de función anónima
} //fin de chequeo
// </nowiki>