wp/wp-includes/js/tinymce/plugins/wplink/plugin.js
changeset 5 5e2f62d02dcd
child 7 cf61fcea0001
equal deleted inserted replaced
4:346c88efed21 5:5e2f62d02dcd
       
     1 /* global tinymce */
       
     2 tinymce.PluginManager.add( 'wplink', function( editor ) {
       
     3 	editor.addCommand( 'WP_Link', function() {
       
     4 		window.wpLink && window.wpLink.open( editor.id );
       
     5 	});
       
     6 
       
     7 	// WP default shortcut
       
     8 	editor.addShortcut( 'Alt+Shift+A', '', 'WP_Link' );
       
     9 	// The "de-facto standard" shortcut, see #27305
       
    10 	editor.addShortcut( 'Meta+K', '', 'WP_Link' );
       
    11 
       
    12 	editor.addButton( 'link', {
       
    13 		icon: 'link',
       
    14 		tooltip: 'Insert/edit link',
       
    15 		cmd: 'WP_Link',
       
    16 		stateSelector: 'a[href]'
       
    17 	});
       
    18 
       
    19 	editor.addButton( 'unlink', {
       
    20 		icon: 'unlink',
       
    21 		tooltip: 'Remove link',
       
    22 		cmd: 'unlink'
       
    23 	});
       
    24 
       
    25 	editor.addMenuItem( 'link', {
       
    26 		icon: 'link',
       
    27 		text: 'Insert/edit link',
       
    28 		cmd: 'WP_Link',
       
    29 		stateSelector: 'a[href]',
       
    30 		context: 'insert',
       
    31 		prependToContext: true
       
    32 	});
       
    33 
       
    34 	editor.on( 'pastepreprocess', function( event ) {
       
    35 		var pastedStr = event.content;
       
    36 
       
    37 		if ( ! editor.selection.isCollapsed() ) {
       
    38 			pastedStr = pastedStr.replace( /<[^>]+>/g, '' );
       
    39 			pastedStr = tinymce.trim( pastedStr );
       
    40 
       
    41 			if ( /^(?:https?:)?\/\/\S+$/i.test( pastedStr ) ) {
       
    42 				editor.execCommand( 'mceInsertLink', false, {
       
    43 					href: editor.dom.decode( pastedStr )
       
    44 				} );
       
    45 
       
    46 				event.preventDefault();
       
    47 			}
       
    48 		}
       
    49 	} );
       
    50 });