WordPress.org

Make WordPress Core

Ticket #27406: 27406.alwaysclose.diff

File 27406.alwaysclose.diff, 959 bytes (added by celloexpressions, 3 years ago)

Always close all accordion sections when moving in and out of panels.

  • src/wp-admin/js/accordion.js

     
    7272                var position, 
    7373                        section = panel.closest( '.accordion-section' ), 
    7474                        container = section.closest( '.wp-full-overlay' ), 
    75                         siblings = container.find( '.accordion-section.open' ), 
     75                        siblings = section.closest( '.accordion-container' ).find( '.open' ), 
    7676                        content = section.find( '.control-panel-content' ); 
    7777 
    7878                if ( section.hasClass( 'current-panel' ) ) { 
     
    8282                                content.css( 'margin-top', 'inherit' ); // Reset 
    8383                        } ); 
    8484                } else { 
     85                        // Close all open sections in any accordion level. 
    8586                        siblings.removeClass( 'open' ); 
     87                        siblings.find( sectionContent ).show().slideUp( 150 ); 
    8688                        content.show( 0, function() { 
    8789                                position = content.offset().top; 
    8890                                content.css( 'margin-top', ( 45 - position ) );