MediaWiki:Gadget-enlaceswiki.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é.

/**
 * Sidebar
 * <nowiki>
 */
// Protege contra doble inclusión
if ( window.gadgetSidebar === undefined ) {

	//Global
	var gadgetSidebar = {
		'habilitado': true
	};

	//Enlaza con window
	window.gadgetSidebar = gadgetSidebar;

	//Scope local para no contaminar espacio global
	(function ( $, mw ) {
		'use strict';
		gadgetSidebar.agregarSeccion = function ( section, name ) {
			var $node;
			$node = $( '#p-tb' ).clone();
			$node.find( 'h3, label span' ).text( name );
			$node.find( 'div, ul' ).children().remove();
			$node.prop( 'id', 'p-' + section );
			$( '#p-tb' ).after( $node );
		};

		gadgetSidebar.modificarEnlace = function ( action, section, name, link ) {
			var target;
			try {
				switch ( section ) {
				case "navegación":
				case "navigation":
					target = "p-navigation";
					break;
				case "toolbox":
				case "herramientas":
					target = "p-tb";
					break;
				case "languages":
				case "idiomas":
					target = "p-lang";
					break;
				default:
					target = "p-" + section;
					break;
				}

				if ( action == "add" ) {
					mw.util.addPortletLink( target, link, name );
				} else if ( action == "remove" ) {
					var list = $( '#' + target ).find( 'ul' ),
						listA = list.find( 'a' ),
						listALargo = listA.length,
						i;

					for ( i = 0; i < listALargo; i++ ) {
						if ( listA[i].innerHTML == name || listA[i].href == link ) {
							list[0].removeChild( listA[i].parentNode );
							break;
						}
					}
				}
			} catch (e) {
				// lets just ignore what's happened
				return;
			}
		};

		function ejecutar() {
			if ( gadgetSidebar.habilitado ) {
				var articlePath = mw.config.get( 'wgArticlePath' );
				gadgetSidebar.agregarSeccion( 'enlaceswiki', 'Enlaces wiki' );

				gadgetSidebar.modificarEnlace( 'add', 'enlaceswiki',
					'common.js',
					articlePath.replace( '$1', 'User:' +
						mw.config.get( 'wgUserName' ) + '/' +
						'common.js' )
				);
				gadgetSidebar.modificarEnlace( 'add', 'enlaceswiki',
					'common.css',
					articlePath.replace( '$1', 'User:' +
						mw.config.get( 'wgUserName' ) + '/' +
						'common.css' )
				);
				gadgetSidebar.modificarEnlace( 'add', 'enlaceswiki',
					'Tablón de bibliotecarios',
					articlePath.replace( '$1',
						'Wikipedia:Tablón_de_anuncios_de_los_bibliotecarios' )
				);
				gadgetSidebar.modificarEnlace( 'add', 'enlaceswiki',
					'Zona de pruebas',
					articlePath.replace( '$1',
						'Wikipedia:Zona_de_pruebas' )
				);
				gadgetSidebar.modificarEnlace( 'add', 'enlaceswiki',
					'Café',
					articlePath.replace( '$1',
						'Wikipedia:Café' )
				);
				gadgetSidebar.modificarEnlace( 'add', 'enlaceswiki',
					'Cartelera',
					articlePath.replace( '$1',
						'Wikipedia:Cartelera_de_acontecimientos' )
				);
				gadgetSidebar.modificarEnlace( 'add', 'enlaceswiki',
					'Votaciones',
					articlePath.replace( '$1',
						'Wikipedia:Votaciones' )
				);
				gadgetSidebar.modificarEnlace( 'add', 'enlaceswiki',
					'Mantenimiento',
					articlePath.replace( '$1',
						'Categoría:Wikipedia:Mantenimiento' )
				);
				gadgetSidebar.modificarEnlace( 'add', 'enlaceswiki',
					'Vandalismo en curso',
					articlePath.replace( '$1',
						'Wikipedia:Vandalismo_en_curso' )
				);
				gadgetSidebar.modificarEnlace( 'add', 'enlaceswiki',
					'Peticiones de desbloqueo',
					articlePath.replace( '$1',
						'Categoría:Wikipedia:Peticiones_de_desbloqueo' )
				);
			}
		}

		$.when( mw.loader.using('mediawiki.util'), $.ready ).then( ejecutar );

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