WordPress.org

Make WordPress Core

Ticket #23042: 23042-3.patch

File 23042-3.patch, 4.0 KB (added by azaozz, 5 years ago)
  • wp-admin/js/post.js

     
    685685
    686686        // resizable textarea#content
    687687        (function() {
    688                 var textarea = $('textarea#content'), offset = null, el;
     688                var textarea = $('textarea#content'), offset = null, el, height;
    689689                // No point for touch devices
    690                 if ( 'ontouchstart' in window )
     690                if ( !textarea.length || 'ontouchstart' in window )
    691691                        return;
    692692
    693693                function dragging(e) {
    694                         textarea.height( Math.max(50, offset + e.pageY) + 'px' );
     694                        height = Math.max(50, offset + e.pageY);
     695                        textarea.height( height + 'px' );
    695696                        return false;
    696697                }
    697698
    698699                function endDrag(e) {
    699                         var height = $('#wp-content-editor-container').height();
    700 
    701700                        textarea.focus();
    702701                        $(document).unbind('mousemove', dragging).unbind('mouseup', endDrag);
    703702
    704                         height -= 33; // compensate for toolbars, padding...
    705703                        // sanity check
    706                         if ( height > 50 && height < 5000 && height != getUserSetting( 'ed_size' ) )
     704                        if ( height && height > 50 && height < 5000 )
    707705                                setUserSetting( 'ed_size', height );
    708706                }
    709707
     
    724722                        if ( ed.id != 'content' || tinymce.isIOS5 )
    725723                                return;
    726724
     725                        function getHeight() {
     726                                var height, node = document.getElementById('content_ifr'),
     727                                        ifr_height = node ? parseInt( node.style.height, 10 ) : 360,
     728                                        tb_height = $('#content_tbl tr.mceFirst').height();
     729
     730                                if ( !ifr_height || !tb_height )
     731                                        return false;
     732
     733                                // total height including toolbar and statusbar
     734                                height = ifr_height + tb_height + 21;
     735                                // textarea height = total height - 33px Quicktags toolbar
     736                                height -= 33;
     737
     738                                return height;
     739                        }
     740
    727741                        // resize TinyMCE to match the textarea height when switching Text -> Visual
    728742                        ed.onLoadContent.add( function(ed, o) {
    729                                 var ifr_height, height = parseInt( $('#content').css('height'), 10 ),
     743                                var ifr_height, node = document.getElementById('content'),
     744                                        height = node ? parseInt( node.style.height, 10 ) : 0,
    730745                                        tb_height = $('#content_tbl tr.mceFirst').height();
    731746
    732                                 if ( height && !isNaN(height) && tb_height ) {
    733                                         ifr_height = (height - tb_height) + 12; // compensate for padding in the textarea
    734                                         // sanity check
    735                                         if ( ifr_height > 50 && ifr_height < 5000 ) {
    736                                                 $('#content_tbl').css('height', '' );
    737                                                 $('#content_ifr').css('height', ifr_height + 'px' );
    738                                         }
     747                                // height cannot be 50 or less, or 5000 or more
     748                                if ( !height || height <= 50 || height >= 5000 ) {
     749                                        height = 360; // default height for the main editor
     750                                        setUserSetting('ed_size', height);
    739751                                }
     752
     753                                if ( tb_height )
     754                                        ifr_height = (height - tb_height) + 12; // compensate for padding and toolbars
     755                                else
     756                                        ifr_height = 340;
     757
     758                                // sanity check
     759                                if ( ifr_height > 50 && ifr_height < 5000 ) {
     760                                        $('#content_tbl').css('height', '' );
     761                                        $('#content_ifr').css('height', ifr_height + 'px' );
     762                                }
    740763                        });
    741764
    742765                        // resize the textarea to match TinyMCE's height when switching Visual -> Text
    743766                        ed.onSaveContent.add( function(ed, o) {
    744                                 var height = $('#content_tbl').height();
     767                                var height = getHeight();
    745768
    746                                 if ( height && height > 83 && height < 5000 ) {
    747                                         height -= 33;
     769                                if ( !height || height <= 50 || height >= 5000 )
     770                                        height = 360;
    748771
    749                                         $('#content').css( 'height', height + 'px' );
    750                                 }
     772                                $('textarea#content').css( 'height', height + 'px' );
    751773                        });
    752774
    753775                        // save on resizing TinyMCE
    754776                        ed.onPostRender.add(function() {
    755777                                $('#content_resize').on('mousedown.wp-mce-resize', function(e){
    756778                                        $(document).on('mouseup.wp-mce-resize', function(e){
    757                                                 var height = $('#wp-content-editor-container').height();
     779                                                var height = getHeight();
    758780
    759                                                 height -= 33;
    760781                                                // sanity check
    761                                                 if ( height > 50 && height < 5000 && height != getUserSetting( 'ed_size' ) )
     782                                                if ( height && height > 50 && height < 5000 )
    762783                                                        setUserSetting( 'ed_size', height );
    763784
    764785                                                $(document).off('mouseup.wp-mce-resize');