@@ -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’s personal data export link was sent.' ) ;
57+ var userEmail = getUserEmail ( $requestRow ) ,
58+ summaryMessage ;
8159
8260 if ( 'undefined' !== typeof zipUrl ) {
83- summaryMessage = __ ( 'This user’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’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’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