WordPress.org

Make WordPress Core

Ticket #20337: 20337.2.patch

File 20337.2.patch, 2.0 KB (added by SergeyBiryukov, 6 years ago)
  • wp-includes/js/customize-loader.dev.js

     
    1010
    1111                        this.element.on( 'click', '.close-full-overlay', function() {
    1212                                Loader.close();
     13                                window.location.hash = '';
    1314                                return false;
    1415                        });
    1516
     
    1718                                Loader.element.toggleClass('collapsed');
    1819                                return false;
    1920                        });
     21
     22                        Loader.checkHashParams();
    2023                },
     24                getHashParams: function() {
     25                        var hash = window.location.toString().split(/[#?]/)[1];
     26                        var hashParams = {};
     27
     28                        if ( ! hash )
     29                                return hashParams;
     30
     31                        var parts = hash.replace('customize/', '').split(/[=&]/);
     32                        for ( var i = 0; i < parts.length; i += 2 ) {
     33                                hashParams[ parts[i] ] = decodeURIComponent( parts[i + 1] );
     34                        }
     35
     36                        return hashParams;
     37                },
     38                checkHashParams: function() {
     39                        var params = Loader.getHashParams();
     40
     41                        if ( params.template && params.stylesheet ) {
     42                                // Load the theme.
     43                                Loader.open({
     44                                        template:   params.template,
     45                                        stylesheet: params.stylesheet
     46                                });
     47                        } else {
     48                                if ( Loader.iframe )
     49                                        Loader.close();
     50                        }
     51                },
    2152                open: function( params ) {
     53                        if ( -1 == window.location.hash.indexOf( '#customize' ) )
     54                                window.location.hash = 'customize/template=' + params.template + '&stylesheet=' + params.stylesheet;
     55
    2256                        params.customize = 'on';
    2357
    2458                        this.iframe = $( '<iframe />', {
     
    3165                },
    3266                close: function() {
    3367                        this.element.fadeOut( 200, function() {
    34                                 Loader.iframe.remove();
     68                                if ( Loader.iframe )
     69                                        Loader.iframe.remove();
    3570                                Loader.iframe = null;
    3671                                Loader.body.removeClass( 'customize-active full-overlay-active' );
    3772                        });
     
    4176        $( function() {
    4277                Loader.initialize();
    4378
     79                window.onhashchange = function() {
     80                        Loader.checkHashParams();
     81                }
     82
    4483                $('#current-theme, #availablethemes').on( 'click', '.load-customize', function( event ) {
    4584                        var load = $(this);
    4685