WordPress.org

Make WordPress Core

Ticket #44264: 44264.1.patch

File 44264.1.patch, 5.1 KB (added by dominic_ks, 12 months ago)

Updated patch with fixed indents and also allows for specific progress indicators per job when running multiple exports or deletions at the same time.

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

     
    5959                var $this          = $( this ),
    6060                        $action        = $this.parents( '.export-personal-data' ),
    6161                        $requestRow    = $this.parents( 'tr' ),
     62                        $progressCont  = $requestRow.find( '.export-progress' );
    6263                        requestID      = $action.data( 'request-id' ),
    6364                        nonce          = $action.data( 'nonce' ),
    6465                        exportersCount = $action.data( 'exporters-count' ),
     
    6970
    7071                $action.blur();
    7172                clearResultsAfterRow( $requestRow );
     73                setProgress( 0 );
    7274
    7375                function onExportDoneSuccess( zipUrl ) {
    7476                        var summaryMessage = strings.emailSent;
     
    7779
    7880                        appendResultsAfterRow( $requestRow, 'notice-success', summaryMessage, [] );
    7981                        $this.hide();
    80                        
     82
    8183                        if ( 'undefined' !== typeof zipUrl ) {
    8284                                window.location = zipUrl;
    8385                        } else if ( ! sendAsEmail ) {
     
    9294                        }
    9395                }
    9496
     97                function setProgress( exporterIndex ) {
     98                  var progress = exporterIndex / exportersCount;
     99                  var progressString = Math.round( progress * 100 ).toString() + '%';
     100                  $progressCont.html( progressString );
     101                }
     102
    95103                function doNextExport( exporterIndex, pageIndex ) {
    96104                        $.ajax(
    97105                                {
     
    120128                                        setTimeout( doNextExport( exporterIndex, pageIndex + 1 ) );
    121129                                } else {
    122130                                        if ( exporterIndex < exportersCount ) {
     131                                                setProgress( exporterIndex );
    123132                                                setTimeout( doNextExport( exporterIndex + 1, 1 ) );
    124133                                        } else {
    125134                                                onExportDoneSuccess( responseData.url );
     
    141150                var $this         = $( this ),
    142151                        $action       = $this.parents( '.remove-personal-data' ),
    143152                        $requestRow   = $this.parents( 'tr' ),
     153                        $progressCont = $requestRow.find( '.delete-progress' );
    144154                        requestID     = $action.data( 'request-id' ),
    145155                        nonce         = $action.data( 'nonce' ),
    146156                        erasersCount  = $action.data( 'erasers-count' ),
     
    152162
    153163                $action.blur();
    154164                clearResultsAfterRow( $requestRow );
     165                setProgress( 0 );
    155166
    156167                function onErasureDoneSuccess() {
    157168                        var summaryMessage = strings.noDataFound;
     
    183194                        appendResultsAfterRow( $requestRow, 'notice-error', strings.removalError, [] );
    184195                }
    185196
     197                function setProgress( eraserIndex ) {
     198                  var progress = eraserIndex / erasersCount;
     199                  var progressString = Math.round( progress * 100 ).toString() + '%';
     200                  $progressCont.html( progressString );
     201                }
     202
    186203                function doNextErasure( eraserIndex, pageIndex ) {
    187204                        $.ajax({
    188205                                url: window.ajaxurl,
     
    214231                                        setTimeout( doNextErasure( eraserIndex, pageIndex + 1 ) );
    215232                                } else {
    216233                                        if ( eraserIndex < erasersCount ) {
     234                                                setProgress( eraserIndex );
    217235                                                setTimeout( doNextErasure( eraserIndex + 1, 1 ) );
    218236                                        } else {
    219237                                                onErasureDoneSuccess();
     
    260278                }
    261279        });
    262280});
    263 
  • src/wp-admin/includes/class-wp-privacy-data-export-requests-list-table.php

     
    100100
    101101                                ?>
    102102                                <span class="export-personal-data-idle"><button type="button" class="button export-personal-data-handle"><?php _e( 'Send Export Link' ); ?></button></span>
    103                                 <span class="export-personal-data-processing button updating-message hidden"><?php _e( 'Sending Email...' ); ?></span>
     103                                <span class="export-personal-data-processing button updating-message hidden"><?php _e( 'Sending Email...' ); ?> <span class="export-progress"></span></span>
    104104                                <span class="export-personal-data-success success-message hidden"><?php _e( 'Email sent.' ); ?></span>
    105105                                <span class="export-personal-data-failed hidden"><?php _e( 'Email could not be sent.' ); ?> <button type="button" class="button export-personal-data-handle"><?php _e( 'Retry' ); ?></button></span>
    106106                                <?php
  • src/wp-admin/includes/class-wp-privacy-data-removal-requests-list-table.php

     
    106106
    107107                                ?>
    108108                                <span class="remove-personal-data-idle"><button type="button" class="button remove-personal-data-handle"><?php _e( 'Erase Personal Data' ); ?></button></span>
    109                                 <span class="remove-personal-data-processing button updating-message hidden"><?php _e( 'Erasing Data...' ); ?></span>
     109                                <span class="remove-personal-data-processing button updating-message hidden"><?php _e( 'Erasing Data...' ); ?> <span class="delete-progress"></span></span>
    110110                                <span class="remove-personal-data-success success-message hidden" ><?php _e( 'Erasure completed.' ); ?></span>
    111111                                <span class="remove-personal-data-failed hidden"><?php _e( 'Data Erasure has failed.' ); ?> <button type="button" class="button remove-personal-data-handle"><?php _e( 'Retry' ); ?></button></span>
    112112                                <?php