Skip to content

Commit 6655858

Browse files
committed
fix: move privacy notices to standard admin position
1 parent 32bca45 commit 6655858

File tree

1 file changed

+66
-53
lines changed

1 file changed

+66
-53
lines changed

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

Lines changed: 66 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -14,46 +14,24 @@ jQuery( function( $ ) {
1414
$action.children( '.' + state ).removeClass( 'hidden' );
1515
}
1616

17-
function clearResultsAfterRow( $requestRow ) {
18-
$requestRow.removeClass( 'has-request-results' );
19-
20-
if ( $requestRow.next().hasClass( 'request-results' ) ) {
21-
$requestRow.next().remove();
22-
}
17+
function getUserEmail( $requestRow ) {
18+
var $emailCell = $requestRow.find( '.column-email a[href^="mailto:"]' );
19+
return $emailCell.length ? $emailCell.text() : '';
2320
}
2421

25-
function appendResultsAfterRow( $requestRow, classes, summaryMessage, additionalMessages ) {
26-
var itemList = '',
27-
resultRowClasses = 'request-results';
28-
29-
clearResultsAfterRow( $requestRow );
30-
31-
if ( additionalMessages.length ) {
32-
$.each( additionalMessages, function( index, value ) {
33-
itemList = itemList + '<li>' + value + '</li>';
34-
});
35-
itemList = '<ul>' + itemList + '</ul>';
36-
}
22+
function showAdminNotice( message, type ) {
23+
var $headerEnd = $( '.wp-header-end' ),
24+
$notice = $( '<div class="notice notice-' + type + ' is-dismissible"><p><strong>' + message + '</strong></p></div>' );
3725

38-
$requestRow.addClass( 'has-request-results' );
39-
40-
if ( $requestRow.hasClass( 'status-request-confirmed' ) ) {
41-
resultRowClasses = resultRowClasses + ' status-request-confirmed';
42-
}
26+
$( '.wrap > .notice' ).remove();
4327

44-
if ( $requestRow.hasClass( 'status-request-failed' ) ) {
45-
resultRowClasses = resultRowClasses + ' status-request-failed';
28+
if ( $headerEnd.length ) {
29+
$headerEnd.after( $notice );
30+
} else {
31+
$( '.wrap' ).find( '> h1' ).after( $notice );
4632
}
4733

48-
$requestRow.after( function() {
49-
return '<tr class="' + resultRowClasses + '"><th colspan="5">' +
50-
'<div class="notice inline notice-alt ' + classes + '" role="alert">' +
51-
'<p>' + summaryMessage + '</p>' +
52-
itemList +
53-
'</div>' +
54-
'</td>' +
55-
'</tr>';
56-
});
34+
$( document ).trigger( 'wp-notice-added' );
5735
}
5836

5937
$( '.export-personal-data-handle' ).on( 'click', function( event ) {
@@ -73,19 +51,27 @@ jQuery( function( $ ) {
7351
$rowActions.addClass( 'processing' );
7452

7553
$action.trigger( 'blur' );
76-
clearResultsAfterRow( $requestRow );
7754
setExportProgress( 0 );
7855

7956
function onExportDoneSuccess( zipUrl ) {
80-
var summaryMessage = __( 'This user&#8217;s personal data export link was sent.' );
57+
var userEmail = getUserEmail( $requestRow ),
58+
summaryMessage;
8159

8260
if ( 'undefined' !== typeof zipUrl ) {
83-
summaryMessage = __( 'This user&#8217;s personal data export file was downloaded.' );
61+
summaryMessage = userEmail ?
62+
/* translators: %s: User's email address. */
63+
wp.i18n.sprintf( __( 'Personal data export file for %s was downloaded.' ), userEmail ) :
64+
__( 'This user&#8217;s personal data export file was downloaded.' );
65+
} else {
66+
summaryMessage = userEmail ?
67+
/* translators: %s: User's email address. */
68+
wp.i18n.sprintf( __( 'Personal data export link for %s was sent.' ), userEmail ) :
69+
__( 'This user&#8217;s personal data export link was sent.' );
8470
}
8571

8672
setActionState( $action, 'export-personal-data-success' );
8773

88-
appendResultsAfterRow( $requestRow, 'notice-success', summaryMessage, [] );
74+
showAdminNotice( summaryMessage, 'success' );
8975

9076
if ( 'undefined' !== typeof zipUrl ) {
9177
window.location = zipUrl;
@@ -97,14 +83,20 @@ jQuery( function( $ ) {
9783
}
9884

9985
function onExportFailure( errorMessage ) {
100-
var summaryMessage = __( 'An error occurred while attempting to export personal data.' );
86+
var userEmail = getUserEmail( $requestRow ),
87+
summaryMessage = userEmail ?
88+
/* translators: %s: User's email address. */
89+
wp.i18n.sprintf( __( 'An error occurred while attempting to export personal data for %s.' ), userEmail ) :
90+
__( 'An error occurred while attempting to export personal data.' );
10191

10292
setActionState( $action, 'export-personal-data-failed' );
10393

10494
if ( errorMessage ) {
105-
appendResultsAfterRow( $requestRow, 'notice-error', summaryMessage, [ errorMessage ] );
95+
summaryMessage += ' ' + errorMessage;
10696
}
10797

98+
showAdminNotice( summaryMessage, 'error' );
99+
108100
setTimeout( function() { $rowActions.removeClass( 'processing' ); }, 500 );
109101
}
110102

@@ -178,41 +170,62 @@ jQuery( function( $ ) {
178170
$rowActions.addClass( 'processing' );
179171

180172
$action.trigger( 'blur' );
181-
clearResultsAfterRow( $requestRow );
182173
setErasureProgress( 0 );
183174

184175
function onErasureDoneSuccess() {
185-
var summaryMessage = __( 'No personal data was found for this user.' ),
186-
classes = 'notice-success';
176+
var userEmail = getUserEmail( $requestRow ),
177+
summaryMessage,
178+
noticeType = 'success';
187179

188180
setActionState( $action, 'remove-personal-data-success' );
189181

190182
if ( false === hasRemoved ) {
191183
if ( false === hasRetained ) {
192-
summaryMessage = __( 'No personal data was found for this user.' );
184+
summaryMessage = userEmail ?
185+
/* translators: %s: User's email address. */
186+
wp.i18n.sprintf( __( 'No personal data was found for %s.' ), userEmail ) :
187+
__( 'No personal data was found for this user.' );
193188
} else {
194-
summaryMessage = __( 'Personal data was found for this user but was not erased.' );
195-
classes = 'notice-warning';
189+
summaryMessage = userEmail ?
190+
/* translators: %s: User's email address. */
191+
wp.i18n.sprintf( __( 'Personal data was found for %s but was not erased.' ), userEmail ) :
192+
__( 'Personal data was found for this user but was not erased.' );
193+
noticeType = 'warning';
196194
}
197195
} else {
198196
if ( false === hasRetained ) {
199-
summaryMessage = __( 'All of the personal data found for this user was erased.' );
197+
summaryMessage = userEmail ?
198+
/* translators: %s: User's email address. */
199+
wp.i18n.sprintf( __( 'Personal data erasure for %s completed.' ), userEmail ) :
200+
__( 'All of the personal data found for this user was erased.' );
200201
} else {
201-
summaryMessage = __( 'Personal data was found for this user but some of the personal data found was not erased.' );
202-
classes = 'notice-warning';
202+
summaryMessage = userEmail ?
203+
/* translators: %s: User's email address. */
204+
wp.i18n.sprintf( __( 'Personal data erasure for %s completed, but some data was retained.' ), userEmail ) :
205+
__( 'Personal data was found for this user but some of the personal data found was not erased.' );
206+
noticeType = 'warning';
203207
}
204208
}
205-
appendResultsAfterRow( $requestRow, classes, summaryMessage, messages );
209+
210+
if ( messages.length ) {
211+
summaryMessage += ' ' + messages.join( ' ' );
212+
}
213+
214+
showAdminNotice( summaryMessage, noticeType );
206215

207216
setTimeout( function() { $rowActions.removeClass( 'processing' ); }, 500 );
208217
}
209218

210219
function onErasureFailure() {
211-
var summaryMessage = __( 'An error occurred while attempting to find and erase personal data.' );
220+
var userEmail = getUserEmail( $requestRow ),
221+
summaryMessage = userEmail ?
222+
/* translators: %s: User's email address. */
223+
wp.i18n.sprintf( __( 'An error occurred while attempting to find and erase personal data for %s.' ), userEmail ) :
224+
__( 'An error occurred while attempting to find and erase personal data.' );
212225

213226
setActionState( $action, 'remove-personal-data-failed' );
214-
215-
appendResultsAfterRow( $requestRow, 'notice-error', summaryMessage, [] );
227+
228+
showAdminNotice( summaryMessage, 'error' );
216229

217230
setTimeout( function() { $rowActions.removeClass( 'processing' ); }, 500 );
218231
}

0 commit comments

Comments
 (0)