Hoppa till innehållet

MediaWiki:Gadget-mapframe.js

Från Wikipedia
Version från den 10 augusti 2017 kl. 15.01 av Nirmos (Diskussion | Bidrag) (Om det finns något p-element, lägg till kartan före det första p-elementet. Annars, lägg till kartan i början av .mw-parser-output precis som vanligt.)

OBS: Efter du har publicerat sidan kan du behöva tömma din webbläsares cache för att se ändringarna.

  • Firefox / Safari: Håll ned Skift och klicka på Uppdatera sidan eller tryck Ctrl-F5 eller Ctrl-R (⌘-R på Mac)
  • Google Chrome: Tryck Ctrl-Skift-R (⌘-Skift-R på Mac)
  • Edge Håll ned Ctrl och klicka på Uppdatera eller tryck Ctrl-F5.
  • Opera: Tryck Ctrl-F5.
//<nowiki>
$( function() {
	'use strict';
	var coords = $( '#coordinates' ).find( '.geo-dec' );
	var arr;
	var text;
	var prefixedarr;
	var trimmedarr;
	var lat;
	var lon;
	var str;
	var hasInfobox;
	var container = $( '#mw-content-text' ).find( '.mw-parser-output' );
	if ( $( '.infobox' ).length ) {
		hasInfobox = true;
	}
	if ( coords.length === 1 && $( '.mw-kartographer-container' ).length === 0 ) {
		text = coords.text();
		if ( text ) {
			arr = text.split( ' ' );
			if ( arr.length === 2 ) {
				prefixedarr = arr.map( function( v ) {
					if ( v.includes( 'V' ) || v.includes( 'S' ) ) {
						return '-' + v;
					} else {
						return v;
					}
				} );
				trimmedarr = prefixedarr.map( function( v ) {
					return v.split( '°' )[ 0 ];
				} );
				if ( trimmedarr.length === 2 ) {
					lat = trimmedarr[ 0 ];
					lon = trimmedarr[ 1 ];
					str = '<mapframe ';
					if ( hasInfobox ) {
						str += 'frameless';
					} else {
						str += 'text="{{SUBPAGENAME}}"';
					}
					str += ' width=250 height=250 zoom=13 longitude=' + lon + ' latitude=' + lat + ' />';
					( new mw.Api() ).get( {
						action: 'parse',
						title: mw.config.get( 'wgPageName' ),
						text: str,
						prop: 'text',
						formatversion: 2
					} ).done( function( data ) {
						var html = $( data.parse.text );
						var map = html.find( '.mw-kartographer-container' );
						if ( hasInfobox ) {
							map = map.wrap( '<tr><td colspan="3"></td></tr>' ).parent().parent();
							$( '.infobox' ).find( 'tbody' ).first().append( map );
							$( '.mw-kartographer-map' ).removeClass( 'floatright' );
							$( '.mw-kartographer-map' ).css( 'margin', '0 auto' );
						} else {
							if ( container.children( 'p' ).length ) {
								container.children( 'p' ).first().before( map );
							} else {
								container.prepend( map );
							}
						}
						mw.hook( 'wikipage.content' ).fire( $( '#mw-content-text' ) );
					} );
				}
			}
		}
	}
} );
//</nowiki>