X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/6c8f14c09105d0afa4c1574215c59b5021040e76..HEAD:/wp-admin/js/media-upload.js diff --git a/wp-admin/js/media-upload.js b/wp-admin/js/media-upload.js index 9fc2e819..cd969b9b 100644 --- a/wp-admin/js/media-upload.js +++ b/wp-admin/js/media-upload.js @@ -1,66 +1,59 @@ +/* global tinymce, QTags */ // send html to the post editor -var wpActiveEditor; +var wpActiveEditor, send_to_editor; -function send_to_editor(h) { - var ed, mce = typeof(tinymce) != 'undefined', qt = typeof(QTags) != 'undefined'; +send_to_editor = function( html ) { + var editor, + hasTinymce = typeof tinymce !== 'undefined', + hasQuicktags = typeof QTags !== 'undefined'; - if ( !wpActiveEditor ) { - if ( mce && tinymce.activeEditor ) { - ed = tinymce.activeEditor; - wpActiveEditor = ed.id; - } else if ( !qt ) { + 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() ) { + if ( tbWindow.length ) { 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 @@ var tb_position; $(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);