wp/wp-includes/js/tinymce/plugins/wplink/plugin.js
changeset 5 5e2f62d02dcd
child 7 cf61fcea0001
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wp/wp-includes/js/tinymce/plugins/wplink/plugin.js	Tue Jun 09 03:35:32 2015 +0200
@@ -0,0 +1,50 @@
+/* global tinymce */
+tinymce.PluginManager.add( 'wplink', function( editor ) {
+	editor.addCommand( 'WP_Link', function() {
+		window.wpLink && window.wpLink.open( editor.id );
+	});
+
+	// WP default shortcut
+	editor.addShortcut( 'Alt+Shift+A', '', 'WP_Link' );
+	// The "de-facto standard" shortcut, see #27305
+	editor.addShortcut( 'Meta+K', '', 'WP_Link' );
+
+	editor.addButton( 'link', {
+		icon: 'link',
+		tooltip: 'Insert/edit link',
+		cmd: 'WP_Link',
+		stateSelector: 'a[href]'
+	});
+
+	editor.addButton( 'unlink', {
+		icon: 'unlink',
+		tooltip: 'Remove link',
+		cmd: 'unlink'
+	});
+
+	editor.addMenuItem( 'link', {
+		icon: 'link',
+		text: 'Insert/edit link',
+		cmd: 'WP_Link',
+		stateSelector: 'a[href]',
+		context: 'insert',
+		prependToContext: true
+	});
+
+	editor.on( 'pastepreprocess', function( event ) {
+		var pastedStr = event.content;
+
+		if ( ! editor.selection.isCollapsed() ) {
+			pastedStr = pastedStr.replace( /<[^>]+>/g, '' );
+			pastedStr = tinymce.trim( pastedStr );
+
+			if ( /^(?:https?:)?\/\/\S+$/i.test( pastedStr ) ) {
+				editor.execCommand( 'mceInsertLink', false, {
+					href: editor.dom.decode( pastedStr )
+				} );
+
+				event.preventDefault();
+			}
+		}
+	} );
+});