WordPress.org

Make WordPress Core

Ticket #23367: 23367-refresh.diff

File 23367-refresh.diff, 2.1 KB (added by morganestes, 7 years ago)

Refreshed patch for wp-admin/js/common.js

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

    diff --git src/wp-admin/js/common.js src/wp-admin/js/common.js
    index bcdb576..78e65d3 100644
    $(document).ready( function() { 
    181181                $document = $( document ),
    182182                $window = $( window ),
    183183                $body = $( document.body ),
     184                $location = $( location ),
    184185                $adminMenuWrap = $( '#adminmenuwrap' ),
    185186                $wpwrap = $( '#wpwrap' ),
    186187                $adminmenu = $( '#adminmenu' ),
    $(document).ready( function() { 
    838839                }
    839840        };
    840841
     842        /**
     843         * Remove parameters from admin pages after they're loaded so they don't trigger
     844         * messages again if the page is refreshed.
     845         *
     846         * @link https://core.trac.wordpress.org/ticket/23367
     847         * @function removeQueryArgsFromUrl
     848         */
     849        window.removeQueryArgsFromUrl = function () {
     850                var removableQueryArgs = [
     851                            'user_switched',
     852                            'switched_off',
     853                            'switched_back',
     854                            'message',
     855                            'updated',
     856                            'settings-updated',
     857                            'saved',
     858                            'activated',
     859                            'activate',
     860                            'deactivate',
     861                            'locked',
     862                            'skipped',
     863                            'deleted',
     864                            'trashed',
     865                            'untrashed'
     866                    ],
     867                    url = $location.attr( 'href' );
     868
     869                function removeParam( key, sourceURL ) {
     870                        var rtn = sourceURL.split( '?' )[0], param, params = [],
     871                            queryString = (sourceURL.indexOf( '?' ) !== - 1) ? sourceURL.split( '?' )[1] : '';
     872                        if ( queryString !== '' ) {
     873                                params = queryString.split( '&' );
     874                                for ( var i = params.length - 1; i >= 0; i -= 1 ) {
     875                                        param = params[i].split( '=' )[0];
     876                                        if ( $.inArray( param, key ) > - 1 ) {
     877                                                params.splice( i, 1 );
     878                                        }
     879                                }
     880                                rtn = rtn + '?' + params.join( '&' );
     881                        }
     882                        return rtn;
     883                }
     884               
     885                url = removeParam( removableQueryArgs, url );
     886
     887                if ( typeof history.replaceState === 'function' ) {
     888                        history.replaceState( {}, '', url );
     889                }
     890        };
     891
    841892        window.wpResponsive.init();
    842893        setPinMenu();
     894        window.removeQueryArgsFromUrl();
    843895
    844896        $document.on( 'wp-window-resized.pin-menu postboxes-columnchange.pin-menu postbox-toggled.pin-menu wp-collapse-menu.pin-menu wp-scroll-start.pin-menu', setPinMenu );
    845897});