wp/wp-admin/js/media-upload.js
changeset 5 5e2f62d02dcd
parent 0 d970ebf37754
child 7 cf61fcea0001
--- a/wp/wp-admin/js/media-upload.js	Mon Jun 08 16:11:51 2015 +0000
+++ b/wp/wp-admin/js/media-upload.js	Tue Jun 09 03:35:32 2015 +0200
@@ -1,66 +1,59 @@
+/* global tinymce, QTags */
 // send html to the post editor
 
-var wpActiveEditor;
-
-function send_to_editor(h) {
-	var ed, mce = typeof(tinymce) != 'undefined', qt = typeof(QTags) != 'undefined';
+var wpActiveEditor, send_to_editor;
 
-	if ( !wpActiveEditor ) {
-		if ( mce && tinymce.activeEditor ) {
-			ed = tinymce.activeEditor;
-			wpActiveEditor = ed.id;
-		} else if ( !qt ) {
+send_to_editor = function( html ) {
+	var editor,
+		hasTinymce = typeof tinymce !== 'undefined',
+		hasQuicktags = typeof QTags !== 'undefined';
+
+	if ( ! wpActiveEditor ) {
+		if ( hasTinymce && tinymce.activeEditor ) {
+			editor = tinymce.activeEditor;
+			wpActiveEditor = editor.id;
+		} else if ( ! hasQuicktags ) {
 			return false;
 		}
-	} else if ( mce ) {
-		if ( tinymce.activeEditor && (tinymce.activeEditor.id == 'mce_fullscreen' || tinymce.activeEditor.id == 'wp_mce_fullscreen') )
-			ed = tinymce.activeEditor;
-		else
-			ed = tinymce.get(wpActiveEditor);
+	} else if ( hasTinymce ) {
+		editor = tinymce.get( wpActiveEditor );
 	}
 
-	if ( ed && !ed.isHidden() ) {
-		// restore caret position on IE
-		if ( tinymce.isIE && ed.windowManager.insertimagebookmark )
-			ed.selection.moveToBookmark(ed.windowManager.insertimagebookmark);
-
-		if ( h.indexOf('[caption') !== -1 ) {
-			if ( ed.wpSetImgCaption )
-				h = ed.wpSetImgCaption(h);
-		} else if ( h.indexOf('[gallery') !== -1 ) {
-			if ( ed.plugins.wpgallery )
-				h = ed.plugins.wpgallery._do_gallery(h);
-		} else if ( h.indexOf('[embed') === 0 ) {
-			if ( ed.plugins.wordpress )
-				h = ed.plugins.wordpress._setEmbed(h);
-		}
-
-		ed.execCommand('mceInsertContent', false, h);
-	} else if ( qt ) {
-		QTags.insertContent(h);
+	if ( editor && ! editor.isHidden() ) {
+		editor.execCommand( 'mceInsertContent', false, html );
+	} else if ( hasQuicktags ) {
+		QTags.insertContent( html );
 	} else {
-		document.getElementById(wpActiveEditor).value += h;
+		document.getElementById( wpActiveEditor ).value += html;
 	}
 
-	try{tb_remove();}catch(e){};
-}
+	// If the old thickbox remove function exists, call it
+	if ( window.tb_remove ) {
+		try { window.tb_remove(); } catch( e ) {}
+	}
+};
 
 // thickbox settings
 var tb_position;
 (function($) {
 	tb_position = function() {
-		var tbWindow = $('#TB_window'), width = $(window).width(), H = $(window).height(), W = ( 720 < width ) ? 720 : width, adminbar_height = 0;
+		var tbWindow = $('#TB_window'),
+			width = $(window).width(),
+			H = $(window).height(),
+			W = ( 833 < width ) ? 833 : width,
+			adminbar_height = 0;
 
-		if ( $('body.admin-bar').length )
-			adminbar_height = 28;
+		if ( $('#wpadminbar').length ) {
+			adminbar_height = parseInt( $('#wpadminbar').css('height'), 10 );
+		}
 
 		if ( tbWindow.size() ) {
 			tbWindow.width( W - 50 ).height( H - 45 - adminbar_height );
 			$('#TB_iframeContent').width( W - 50 ).height( H - 75 - adminbar_height );
-			tbWindow.css({'margin-left': '-' + parseInt((( W - 50 ) / 2),10) + 'px'});
-			if ( typeof document.body.style.maxWidth != 'undefined' )
-				tbWindow.css({'top': 20 + adminbar_height + 'px','margin-top':'0'});
-		};
+			tbWindow.css({'margin-left': '-' + parseInt( ( ( W - 50 ) / 2 ), 10 ) + 'px'});
+			if ( typeof document.body.style.maxWidth !== 'undefined' )
+				tbWindow.css({'top': 20 + adminbar_height + 'px', 'margin-top': '0'});
+		}
 
 		return $('a.thickbox').each( function() {
 			var href = $(this).attr('href');
@@ -73,16 +66,4 @@
 
 	$(window).resize(function(){ tb_position(); });
 
-	// store caret position in IE
-	$(document).ready(function($){
-		$('a.thickbox').click(function(){
-			var ed;
-
-			if ( typeof(tinymce) != 'undefined' && tinymce.isIE && ( ed = tinymce.get(wpActiveEditor) ) && !ed.isHidden() ) {
-				ed.focus();
-				ed.windowManager.insertimagebookmark = ed.selection.getBookmark();
-			}
-		});
-	});
-
 })(jQuery);