Make WordPress Core

Ticket #44264: 44264.10.diff

File 44264.10.diff, 4.8 KB (added by garrett-eclipse, 5 years ago)

Wrap the Success/Failure functions in SetTimeout for half a second so the user is able to see 100%

  • src/js/_enqueues/admin/privacy-tools.js

     
    6060                        $action        = $this.parents( '.export-personal-data' ),
    6161                        $requestRow    = $this.parents( 'tr' ),
    6262                        $progress      = $requestRow.find( '.export-progress' ),
     63                        $rowActions    = $this.parents( '.row-actions' ),
    6364                        requestID      = $action.data( 'request-id' ),
    6465                        nonce          = $action.data( 'nonce' ),
    6566                        exportersCount = $action.data( 'exporters-count' ),
     
    6869                event.preventDefault();
    6970                event.stopPropagation();
    7071
     72                $rowActions.addClass( 'processing' );
     73
    7174                $action.blur();
    7275                clearResultsAfterRow( $requestRow );
    7376                setExportProgress( 0 );
     
    7881                        setActionState( $action, 'export-personal-data-success' );
    7982
    8083                        appendResultsAfterRow( $requestRow, 'notice-success', summaryMessage, [] );
    81                         $this.hide();
    8284
    8385                        if ( 'undefined' !== typeof zipUrl ) {
    8486                                window.location = zipUrl;
     
    8587                        } else if ( ! sendAsEmail ) {
    8688                                onExportFailure( strings.noExportFile );
    8789                        }
     90
     91                        setTimeout( function(){ $rowActions.removeClass( 'processing' ); }, 500 );
    8892                }
    8993
    9094                function onExportFailure( errorMessage ) {
     
    9296                        if ( errorMessage ) {
    9397                                appendResultsAfterRow( $requestRow, 'notice-error', strings.exportError, [ errorMessage ] );
    9498                        }
     99
     100                        setTimeout( function(){ $rowActions.removeClass( 'processing' ); }, 500 );
    95101                }
    96102
    97103                function setExportProgress( exporterIndex ) {
     
    118124                                var responseData = response.data;
    119125
    120126                                if ( ! response.success ) {
    121 
    122127                                        // e.g. invalid request ID.
    123                                         onExportFailure( response.data );
     128                                        setTimeout( function(){ onExportFailure( response.data ); }, 500 );
    124129                                        return;
    125130                                }
    126131
     
    127132                                if ( ! responseData.done ) {
    128133                                        setTimeout( doNextExport( exporterIndex, pageIndex + 1 ) );
    129134                                } else {
     135                                        setExportProgress( exporterIndex );
    130136                                        if ( exporterIndex < exportersCount ) {
    131                                                 setExportProgress( exporterIndex );
    132137                                                setTimeout( doNextExport( exporterIndex + 1, 1 ) );
    133138                                        } else {
    134                                                 onExportDoneSuccess( responseData.url );
     139                                                setTimeout( function(){ onExportDoneSuccess( responseData.url ); }, 500 );
    135140                                        }
    136141                                }
    137142                        }).fail( function( jqxhr, textStatus, error ) {
    138 
    139143                                // e.g. Nonce failure.
    140                                 onExportFailure( error );
     144                                setTimeout( function(){ onExportFailure( error ); }, 500 );
    141145                        });
    142146                }
    143147
     
    151155                        $action       = $this.parents( '.remove-personal-data' ),
    152156                        $requestRow   = $this.parents( 'tr' ),
    153157                        $progress     = $requestRow.find( '.erasure-progress' ),
     158                        $rowActions    = $this.parents( '.row-actions' ),
    154159                        requestID     = $action.data( 'request-id' ),
    155160                        nonce         = $action.data( 'nonce' ),
    156161                        erasersCount  = $action.data( 'erasers-count' ),
     
    158163                        hasRetained   = false,
    159164                        messages      = [];
    160165
     166                event.preventDefault();
    161167                event.stopPropagation();
    162168
     169                $rowActions.addClass( 'processing' );
     170
    163171                $action.blur();
    164172                clearResultsAfterRow( $requestRow );
    165173                setErasureProgress( 0 );
     
    186194                                }
    187195                        }
    188196                        appendResultsAfterRow( $requestRow, classes, summaryMessage, messages );
    189                         $this.hide();
     197
     198                        setTimeout( function(){ $rowActions.removeClass( 'processing' ); }, 500 );
    190199                }
    191200
    192201                function onErasureFailure() {
    193202                        setActionState( $action, 'remove-personal-data-failed' );
    194203                        appendResultsAfterRow( $requestRow, 'notice-error', strings.removalError, [] );
     204
     205                        setTimeout( function(){ $rowActions.removeClass( 'processing' ); }, 500 );
    195206                }
    196207
    197208                function setErasureProgress( eraserIndex ) {
     
    215226                                var responseData = response.data;
    216227
    217228                                if ( ! response.success ) {
    218                                         onErasureFailure();
     229                                        setTimeout( function(){ onErasureFailure(); }, 500 );
    219230                                        return;
    220231                                }
    221232                                if ( responseData.items_removed ) {
     
    230241                                if ( ! responseData.done ) {
    231242                                        setTimeout( doNextErasure( eraserIndex, pageIndex + 1 ) );
    232243                                } else {
     244                                        setErasureProgress( eraserIndex );
    233245                                        if ( eraserIndex < erasersCount ) {
    234                                                 setErasureProgress( eraserIndex );
    235246                                                setTimeout( doNextErasure( eraserIndex + 1, 1 ) );
    236247                                        } else {
    237                                                 onErasureDoneSuccess();
     248                                                setTimeout( function(){ onErasureDoneSuccess(); }, 500 );
    238249                                        }
    239250                                }
    240251                        }).fail( function() {
    241                                 onErasureFailure();
     252                                setTimeout( function(){ onErasureFailure(); }, 500 );
    242253                        });
    243254                }
    244255
  • src/wp-admin/css/forms.css

     
    12061206        color: #72777c;
    12071207}
    12081208
     1209.privacy_requests .row-actions.processing {
     1210        position: static;
     1211}
     1212
    12091213.privacy_requests tbody .has-request-results th {
    12101214        box-shadow: none;
    12111215}