WordPress.org

Make WordPress Core

Ticket #27406: 27406.alwaysclose.diff

File 27406.alwaysclose.diff, 959 bytes (added by celloexpressions, 4 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 ) );