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 );
}
} );
}
} );
} );