Svoboda | Graniru | BBC Russia | Golosameriki | Facebook
Hoppa till innehållet

Användare:Nirmos/personaledittools.js

Från Wikipedia

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.
mw.loader.using( 'jquery.textSelection', function() {
	'use strict';
	$( function() {
		var v = mw.config.get();
		var target = $( '#wpTextbox1' );
		$( document ).on( 'focus', 'textarea, input:text', function( ev ) {
			target = $( ev.currentTarget );
		} );
		if ( v.wgAction === 'edit' || v.wgAction === 'submit' ) {
			$.getJSON( v.wgScript + '?title=Användare:' + mw.config.get( 'wgUserName' ) + '/edittools.json&action=raw&ctype=text/json', function( arr ) {
				function addClickHandlers( container ) {
					container.find( '.mw-charinsert-item' ).each( function( i, el ) {
						var start = $( el ).data( 'mw-charinsert-start' );
						var end = $( el ).data( 'mw-charinsert-end' );
						if ( !$( el ).data( 'mw-charinsert-done' ) ) {
							$( el )
								.click( function( ev ) {
									ev.preventDefault();
									target.textSelection( 'encapsulateSelection', {
										pre: start,
										peri: '',
										post: end
									} );
								} )
								.data( 'mw-charinsert-done', true )
								.attr( 'href', '#' );
						}
					} );
				}
				var editTools = $( '.mw-editTools #edittools' );
				if ( Array.isArray( arr ) ) {
					arr.forEach( function( obj ) {
						if ( obj.linebreak ) {
							editTools.append( '<br>' );
						}
						if ( obj.text ) {
							$( '<a></a>' )
								.text( obj.text )
								.attr( {
									'title': obj.title,
									'class': 'mw-charinsert-item'
								} )
								.data( {
									'mw-charinsert-start': obj.start_tag,
									'mw-charinsert-end': obj.end_tag
								} )
								.appendTo( editTools )
								.after( ' ' );
						}
					} );
					addClickHandlers( editTools );
				}
			} );
		}
	} );
} );