Make WordPress Core

Changeset 47395


Ignore:
Timestamp:
02/29/2020 11:43:57 PM (7 years ago)
Author:
SergeyBiryukov
Message:

Privacy: Make the progress indicator for export and erasure visible even if not hovered over.

Follow-up to [47246].

Props pbiron, garrett-eclipse.
Fixes #44264.

Location:
trunk/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/js/_enqueues/admin/privacy-tools.js

    r47248 r47395  
    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' ),
    … …  
    6970                event.stopPropagation();
    7071
     72                $rowActions.addClass( 'processing' );
     73
    7174                $action.blur();
    7275                clearResultsAfterRow( $requestRow );
    … …  
    7982
    8083                        appendResultsAfterRow( $requestRow, 'notice-success', summaryMessage, [] );
    81                         $this.hide();
    8284
    8385                        if ( 'undefined' !== typeof zipUrl ) {
    … …  
    8688                                onExportFailure( strings.noExportFile );
    8789                        }
     90
     91                        setTimeout( function(){ $rowActions.removeClass( 'processing' ); }, 500 );
    8892                }
    8993
    … …  
    9397                                appendResultsAfterRow( $requestRow, 'notice-error', strings.exportError, [ errorMessage ] );
    9498                        }
     99
     100                        setTimeout( function(){ $rowActions.removeClass( 'processing' ); }, 500 );
    95101                }
    96102
    … …  
    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                                }
    … …  
    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                }
    … …  
    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' ),
    … …  
    159164                        messages      = [];
    160165
     166                event.preventDefault();
    161167                event.stopPropagation();
     168
     169                $rowActions.addClass( 'processing' );
    162170
    163171                $action.blur();
    … …  
    187195                        }
    188196                        appendResultsAfterRow( $requestRow, classes, summaryMessage, messages );
    189                         $this.hide();
     197
     198                        setTimeout( function(){ $rowActions.removeClass( 'processing' ); }, 500 );
    190199                }
    191200
    … …  
    193202                        setActionState( $action, 'remove-personal-data-failed' );
    194203                        appendResultsAfterRow( $requestRow, 'notice-error', strings.removalError, [] );
     204
     205                        setTimeout( function(){ $rowActions.removeClass( 'processing' ); }, 500 );
    195206                }
    196207
    … …  
    216227
    217228                                if ( ! response.success ) {
    218                                         onErasureFailure();
     229                                        setTimeout( function(){ onErasureFailure(); }, 500 );
    219230                                        return;
    220231                                }
    … …  
    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                }
  • trunk/src/wp-admin/css/forms.css

    r47376 r47395  
    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;
Note: See TracChangeset for help on using the changeset viewer.