MediaWiki:Monobook.js

De WikiDex
Ir a la navegaciónIr a la búsqueda

Nota: Después de publicar, quizás necesite actualizar la caché de su navegador para ver los cambios.

  • Firefox/Safari: Mantenga presionada la tecla Shift mientras pulsa el botón Actualizar, o presiona Ctrl+F5 o Ctrl+R (⌘+R en Mac)
  • Google Chrome: presione Ctrl+Shift+R (⌘+Shift+R en Mac)
  • Internet Explorer/Edge: mantenga presionada Ctrl mientras pulsa Actualizar, o presione Ctrl+F5
  • Opera: Presiona Ctrl+F5.
/* Monobook.js v9 */
// Enlaces navegador para especies en el título
var navegadorCuadroPokemon = function() {
	var $nn = $('#numeronacional');
	if ($nn.length === 0) return;
	var prev = $nn.prev('a').clone();
	var next = $nn.next('a').clone();
	var ccn = $nn.closest('div.cuadro_pokemon').eq(0).attr('class').split(' ');
	var tipo = '';
	for (var i = 0; i < ccn.length; i++) {
		if (ccn[i].indexOf('tipo1-') === 0 || ccn[i].indexOf('tipo2-') === 0) {
			if (tipo !== '') {
				tipo += ' ';
			}
			tipo += ccn[i];
		}
	}
	var fh = $('#firstHeading');
	fh.addClass(tipo).contents().eq(0).wrap('<span class="ctipo navtitulo"></span>');
	fh.addClass('navcp');
	if (prev.length) {
		$('<span class="ctipo navprev">').append(prev.text('« '+prev.text())).appendTo(fh);
	}
	if (next.length) {
		$('<span class="ctipo navnext">').append(next.text(next.text()+' »')).appendTo(fh);
	}
};

if (mw.config.get('wgNamespaceNumber') === 0) {
	(typeof(window.safeOnLoadHook)=='function'?safeOnLoadHook:$)(navegadorCuadroPokemon);
}

// TOC en categorías
var TOCCategorias = function() {
	$('#firstHeading').after('<ul id="categorytoc"><li style="font-weight:bold;">Contenidos:</li><li><a href="#mw-subcategories">Subcategorías</a></li> &#124; <li><a href="#mw-pages">Artículos</a></li> &#124; <li><a href="#mw-category-media">Archivos</a></li> &#124; <li><a href="#catlinks">Categorías</a></li></ul>');
	$('div.pagingLinks').prepend('<span style="font-weight:bold;">Navegación: </span>');
};
if (mw.config.get('wgNamespaceNumber') == 14 && mw.config.get('wgAction') == 'view') {
	(typeof(window.safeOnLoadHook)=='function'?safeOnLoadHook:$)(TOCCategorias);
}

if (!window.monobookRLCompat || window.monobookRLCompat < 1) {
	window.monobookRLCompat = 1;
	(typeof(window.safeOnLoadHook)=='function'?safeOnLoadHook:$)(function() {
		if (window.CreaEnlacesDex) {
			CreaEnlacesDex.registerRenderFn(function() {
				var $parents = $('#p-lang,#p-tb');
				if ($parents.length === 0) {
					return;
				}
				$parents.eq($parents.length - 1).after('<div class="portlet" id="p-dexlinks" role="navigation"><h3>Otras Pokédex</h3><div class="pBody"><ul></ul></div></div>');
			});
			CreaEnlacesDex.registerLinkFn(function(url, text, caption) {
				mw.util.addPortletLink('p-dexlinks', url, text, false, caption);
			});
			CreaEnlacesDex.init();
		}
	});

	/* alternateBG: Agrega un class al body durante los primeros 30 min de cada hora */
	(function () {
		var d = new Date();
		if (d.getMinutes() < 30) {
			try {
				document.body.className += ' alternateBG';
			} catch(e) {
				(typeof(window.safeOnLoadHook)=='function'?safeOnLoadHook:$)(function(){$(document.body).addClass('alternateBG');});
			}
		}
	}());
	(typeof(window.safeOnLoadHook)=='function'?safeOnLoadHook:$)(function() {
		/* FondoFooter */
		$('#globalWrapper').append($('#footer'));
	});
	/* fin alternateBG */

	/* MONOBOOK SIDEBAR */
	/*
	* MonobookSidebar v2.1: Permite definir submenús para elementos del Sidebar de MonoBook, agregando clases
	* especiales al pasar con el puntero por encima para permitir el efecto en todos los navegadores.
	*
	* Copyright (C) 2010 - 2018 Jesús Martínez Novo ([[User:Ciencia Al Poder]])
	*
	* This program is free software; you can redistribute it and/or modify
	*   it under the terms of the GNU General Public License as published by
	*   the Free Software Foundation; either version 2 of the License, or
	*   (at your option) any later version
	*/
	( function( $, mw ) {
		'use strict';
		var _re_url = /^https?:\/\//,
			_re_space = / /g,
			_setHook = function() {
				mw.hook( 'monobooksidebar.sidebar' ).add( _init );
			},
			_init = function( sidebarData ) {
				var menu, $item, $portlet, $portlets = null;
				if ( ! sidebarData ) {
					return;
				}
				for ( menu in sidebarData ) {
					if ( sidebarData.hasOwnProperty( menu ) ) {
						// NOTE: Using document.getElementById because jQuey can't handle ID with dots
						// Spaces need to be replaced by dashes
						$item = $( document.getElementById( 'n-' + mw.util.escapeIdForLink( menu.replace( _re_space, '-' ) ) ) );
						$portlet = $item.closest('div[id].portlet');
						// Check it's a valid portlet item
						if ( ! $portlet.length ) {
							continue;
						}
						if ( ! $portlets ) {
							$portlets = $portlet;
						} else {
							$portlets.add( $portlet );
						}
						// Generate menu hierarchy
						_buildSubmenu( $item , sidebarData[ menu ] );
					}
				}
				// Set events
				/*
				$portlets.find( '>.pBody > ul' ).on( {
					mouseover: _mouseover,
					mouseout: _mouseout
				});*/
			},
			_buildSubmenu = function( $el, arr ) {
				var $ul, $li, menukey;
				$ul = $('<ul class="sub-menu"></ul>');
				for ( var i = 0; i < arr.length; i++ ) {
					$li = $( '<li>' );
					if ( typeof arr[i] == 'string' ) {
						$li.append( _linkFromText( arr[i] ) );
					} else {
						for ( menukey in arr[i] ) {
							if ( arr[i].hasOwnProperty( menukey ) ) {
								$li.append( _linkFromText( menukey ) );
								_buildSubmenu( $li, arr[i][ menukey ] );
							}
						}
					}
					$ul.append( $li );
				}
				$el.append( $ul ).attr( 'class', 'with-sub-menu' ).find( '>a' ).eq( 0 ).append( $( '<em>›</em>' ) );
			},
			_mouseover = function( e ) {
				$( e.target ).closest( 'li.with-sub-menu' ).addClass('hover');
			},
			_mouseout = function(e) {
				$( e.target ).closest( 'li.with-sub-menu' ).removeClass('hover');
			},
			_linkFromText = function( txt ) {
				var $a, article, caption, sepPos = txt.indexOf( '|' );
				if ( sepPos > 0 ) {
					article = txt.substr( 0, sepPos );
					caption = txt.substr( sepPos + 1 );
				} else {
					article = caption = txt;
				}
				$a = $( '<a>' );
				if ( _re_url.test( article ) ) {
					$a.attr( 'href' , article );
				} else {
					$a.attr( 'href' , mw.util.getUrl( article ) );
				}
				$a.text( caption );
				return $a;
			};

		$(_setHook);
	} )( jQuery, mw );

	// Mueve cambios recientes a toolbox
	var PosicionaElementosToolbox = function() {
		$('#p-tb').children().eq(1).children().eq(0)
		// Opciones en páginas de usuario
		.prepend($('#t-emailuser'))
		.prepend($('#t-blockip'))
		.prepend($('#t-log'))
		.prepend($('#t-contributions'))
		// 'Enlace permanente' y 'Versión para imprimir'
		.prepend($('#t-permalink'))
		.prepend($('#t-print'))
		// Opciones principales
		.prepend($('#t-specialpages'))
		.prepend($('#t-recentchangeslinked'))
		.prepend($('#t-whatlinkshere'))
		.prepend($('#t-multiupload'))
		.prepend($('#t-upload'))
		.prepend($('#n-randompage'))
		.prepend($('#t-googlesearch'))
		.prepend($('#n-recentchanges'));

		//if ($('#t-multiupload').length === 0 && $('#t-upload').length == 1) {
		//	$('<li id="t-multiupload"><a href="/wiki/Especial:MultipleUpload">Subir varios archivos</a></li>').insertAfter('#t-upload');
		//}

		$('#t-contributions').before('<hr style="margin: 5px; margin-bottom: -1px; background-color: #E2A600;" />');
		$('#t-print').before('<hr style="margin: 5px; margin-bottom: -1px; background-color: #E2A600;" />');
		$('#t-upload').before('<hr style="margin: 5px; margin-bottom: -1px; background-color: #E2A600;" />');
		$('#t-whatlinkshere').before('<hr style="margin: 5px; margin-bottom: -1px; background-color: #E2A600;" />');

		//mw.util.addPortletLink('p-tb', window.wgIRCUrl, 'Chat de soporte', 'n-irc', 'Accede al chat de WikiDex', false, $('#n-recentchanges').next().get(0));
		mw.util.addPortletLink('p-tb', 'https://cse.google.com/cse/publicurl?cx=012049278226999628206:45yxdtixipa', 'Búsqueda Google', 't-googlesearch', 'Buscar en WikiDex usando el buscador de Google', false, $('#n-recentchanges').next().get(0));
	};
	(typeof(window.safeOnLoadHook)=='function'?safeOnLoadHook:$)(PosicionaElementosToolbox);

	// UserWikiInfo
	if ((mw.config.get('wgNamespaceNumber', 0) == -1 && mw.config.get('wgCanonicalSpecialPageName', '') == 'Contributions') || (mw.config.get('wgCanonicalNamespace', '') == 'User' || mw.config.get('wgCanonicalNamespace', '') == 'User_talk')) {
		(typeof(window.safeOnLoadHook)=='function'?safeOnLoadHook:$)(function() {
			if (!window.disableUserWikiInfo && mw.loader.getState('ext.gadget.UserWikiInfo')) {
				mw.loader.load(['mediawiki.api', 'ext.gadget.UserWikiInfo']);
			}
		});
	}

	(typeof(window.safeOnLoadHook)=='function'?safeOnLoadHook:$)(function() {
		if (!mw.config.get('wgNoWarnOnLogout', false)) {
			$('#pt-logout').children().eq(0).bind('click', function() {
				return confirm('Si continúas dejarás de estar identificado. Podrás volver a iniciar sesión en cualquier momento. ¿Deseas continuar?');
			});
		}
	});


}