MediaWiki:Gadget-GeoBox.js

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
JS-код ниже относится к гаджету «Перелистывание карт в геокарточках, основанных на шаблоне {{Геокар}}» (править описание). Связанный CSS-файл: MediaWiki:Gadget-GeoBox.css. Его использует около 400 учётных записей.

После сохранения или недавних изменений очистите кэш браузера.

/**
 * Взято из https://bg.wikipedia.org/ruwiki/w/index.php?oldid=8290685 и подогнано под рувики
 * Скрипт для реализации перелистывания карт в геокарточках
 */

function GeoBox_Init() {
	$( '.t-geoinfobox' ).each( function() {
		var $container = $( this );
		var $ToggleLinksDiv = $( '<ul>' );
		if ( $container.find( '.location-map' ).length < 2 ) {
			return;
		}
		$container.find( '.location-map' ).parents( 'tr' ).each( function( idx ) {
			var ThisBox = this;
			var $toggle = $( '<a>' )
				.attr( 'title', 'Переключить карту' )
				.addClass( 'mw-ui-button' )
				.text( ThisBox.getElementsByTagName('img')[0].alt )
				.on( 'click', function( e ) {
					$container.find( '.location-map' ).parents( 'tr' ).hide();
					$( ThisBox ).show();
					$ToggleLinksDiv.find( 'a' ).addClass( 'mw-ui-quiet' );
					$( this ).removeClass( 'mw-ui-quiet' );
					return false;
				} );
			var $li = $( '<li>' ).append( $toggle ).appendTo( $ToggleLinksDiv );
			if ( idx !== 0 ) {
				$( ThisBox ).hide();
				$li.find( 'a' ).addClass( 'mw-ui-quiet' );
			}
		});
		var $tr = $container.find( '.location-map:first' ).parents( 'tr' ).prev();
		$tr.addClass( 't-geoinfobox-map-p' );
		$tr.find( 'td' ).append( $ToggleLinksDiv );
		$tr.show();
	});
}

mw.hook( 'wikipage.content' ).add( GeoBox_Init );