WordPress.org

Make WordPress Core

Ticket #25099: 25099-wplink.js.patch

File 25099-wplink.js.patch, 2.5 KB (added by coreygilmore, 8 months ago)
  • wplink.js

     
    296296                                } 
    297297                        } 
    298298                        if ( selectedText && ( selectedText = selectedText.replace( /^\s+|\s+$/g, '' ) ) ) { 
    299                                 if ( ! $('#search-panel').is(':visible') ) 
    300                                         $('#internal-toggle').trigger('click'); 
     299                                $('#internal-toggle').trigger('click'); 
    301300                                inputs.search.val( selectedText ).trigger('keyup'); 
    302301                        } 
    303302 
     
    401400                toggleInternalLinking : function( event ) { 
    402401                        var panel = $('#search-panel'), 
    403402                                widget = inputs.dialog.wpdialog('widget'), 
    404                                 // We're about to toggle visibility; it's currently the opposite 
    405                                 visible = !panel.is(':visible'), 
    406                                 win = $(window); 
     403                                visible = panel.is(':visible'), 
     404                                win = $(window), 
     405                                toggleArrow = $(this), 
     406                                showInternal = getUserSetting('wplink', 1) == 1 ? true : false; 
    407407 
    408                         $(this).toggleClass('toggle-arrow-active', visible); 
    409  
    410408                        inputs.dialog.height('auto'); 
    411                         panel.slideToggle( 300, function() { 
    412                                 setUserSetting('wplink', visible ? '1' : '0'); 
    413                                 inputs[ visible ? 'search' : 'url' ].focus(); 
     409                        // Toggle panel visibility it wasn't triggered programatically or if it isn't visible and needs to be 
     410                        if( event.hasOwnProperty('originalEvent') || visible != showInternal ) { 
     411                                panel.slideToggle( 300, function() { 
     412                                        var hidden = !visible; 
     413                                        setUserSetting('wplink', hidden ? '1' : '0'); 
     414                                        inputs[ hidden ? 'url' : 'search' ].focus(); 
     415                                        toggleArrow.toggleClass('toggle-arrow-active', hidden); 
     416                                        // Move the box if the box is now expanded, was opened in a collapsed state, 
     417                                        // and if it needs to be moved. (Judged by bottom not being positive or 
     418                                        // bottom being smaller than top.) 
     419                                        var scroll = win.scrollTop(), 
     420                                                top = widget.offset().top, 
     421                                                bottom = top + widget.outerHeight(), 
     422                                                diff = bottom - win.height(); 
    414423 
    415                                 // Move the box if the box is now expanded, was opened in a collapsed state, 
    416                                 // and if it needs to be moved. (Judged by bottom not being positive or 
    417                                 // bottom being smaller than top.) 
    418                                 var scroll = win.scrollTop(), 
    419                                         top = widget.offset().top, 
    420                                         bottom = top + widget.outerHeight(), 
    421                                         diff = bottom - win.height(); 
    422  
    423                                 if ( diff > scroll ) { 
    424                                         widget.animate({'top': diff < top ?  top - diff : scroll }, 200); 
    425                                 } 
    426                         }); 
     424                                        if ( diff > scroll ) { 
     425                                                widget.animate({'top': diff < top ?  top - diff : scroll }, 200); 
     426                                        } 
     427                                }); 
     428                        } 
    427429                        event.preventDefault(); 
    428430                } 
    429431        }