MediaWiki:Gadget-osm.js

Материал из Универсал-вики
Перейти к навигации Перейти к поиску

Замечание. Возможно, после сохранения вам придётся очистить кэш своего браузера, чтобы увидеть изменения.

  • Firefox / Safari: Удерживая клавишу Shift, нажмите на панели инструментов Обновить либо нажмите Ctrl-F5 или Ctrl-R (⌘-R на Mac)
  • Google Chrome: Нажмите Ctrl-Shift-R (⌘-Shift-R на Mac)
  • Internet Explorer: Удерживая Ctrl, нажмите Обновить либо нажмите Ctrl-F5
  • Opera: Перейдите в Menu → Настройки (Opera → Настройки на Mac), а затем Безопасность → Очистить историю посещений → Кэшированные изображения и файлы
( function ( mw, $ ) {
	var osmToggle = function ( e ) {
		e.preventDefault();
		var osm = $( '#openstreetmap' );
		if ( osm.length > 0 ) {
			osm.toggle();
		} else {
			var src = '//tools.wmflabs.org/wiwosm/osm-on-ol/kml-on-ol.php?' + 
				$.param( {
					lang: 'ru',
					uselang: 'ru',
					params: $( this ).data( 'params' ),
					title: mw.config.get( 'wgTitle' )
				} );
			$( '#contentSub' ).append(
				$( '<iframe>' )
					.attr( 'id', 'openstreetmap' )
					.attr( 'src', src )
					.css( {
						width: '100%',
						height: '350px',
						clear: 'both'
					} )
			);
		}
		return false;
	};
	
	var osmInit = function () {
		var $coordContainer = $( '#coordinates, #mw-indicator-0-coord' ),
			$coordTag = $coordContainer.find( '.coordinates' );

		if ( $coordTag.length ) {
			if ( $coordContainer.css( 'position' ) === 'static' ) {
				$coordContainer.css( 'position', 'relative' );
			}
			if ( !$coordTag.data( 'param' ) || 
				$coordTag.data( 'param' ).search(/globe:(?!earth)/i) != -1 ) { 
				return; 
			}
			$coordContainer.append(
				$( '<a>' )
					.text( 'Показать карту OpenStreetMap' )
					.attr( 'href', '#' )
					.addClass( 'noprint' )
					.data( 'params', $coordTag.data( 'param' ) )
					.css( {
						position: 'absolute',
						right: 0,
						bottom: $('.skin-vector').length ? '-14px' : '-13px',
						fontSize: '11px',
						whiteSpace: 'nowrap'
					} )
					.on( 'click', osmToggle )
			);
		}
	};

	var DOMLoaded = $( '#coordinates, #mw-indicator-0-coord' ).find( '.coordinates' ).length;
	if ( DOMLoaded ) {
		osmInit();
	} else {
		mw.hook( 'wikipage.content' ).add( osmInit );
	}
	
}( mediaWiki, jQuery ) );