diff --git a/assets/js/src/subscribers/importExport/export.js b/assets/js/src/subscribers/importExport/export.js index cfe0331599..2c21d1d6c4 100644 --- a/assets/js/src/subscribers/importExport/export.js +++ b/assets/js/src/subscribers/importExport/export.js @@ -133,8 +133,7 @@ define( return; } MailPoet.Modal.loading(true); - MailPoet.Ajax - .post({ + MailPoet.Ajax.post({ endpoint: 'ImportExport', action: 'processExport', data: JSON.stringify({ @@ -144,25 +143,22 @@ define( 'segments': (exportData.segments) ? segmentsContainerElement.val() : false, 'subscriber_fields': subscriberFieldsContainerElement.val() }) - }) - .done(function (response) { + }).always(function(response) { MailPoet.Modal.loading(false); - if (response.result === false) { - MailPoet.Notice.error(response.errors); - } else { - resultMessage = MailPoet.I18n.t('exportMessage') - .replace('%1$s', '' + parseInt(response.data.totalExported).toLocaleString() + '') - .replace('[link]', '') - .replace('[/link]', ''); - jQuery('#export_result_notice').html('

' + resultMessage + '

').show(); - window.location.href = response.data.exportFileURL; + }).done(function(response) { + resultMessage = MailPoet.I18n.t('exportMessage') + .replace('%1$s', '' + parseInt(response.data.totalExported).toLocaleString() + '') + .replace('[link]', '') + .replace('[/link]', ''); + jQuery('#export_result_notice').html('

' + resultMessage + '

').show(); + window.location.href = response.data.exportFileURL; + }).fail(function(response) { + if (response.errors.length > 0) { + MailPoet.Notice.error( + response.errors.map(function(error) { return error.message; }), + { scroll: true } + ); } - }) - .fail(function (error) { - MailPoet.Modal.loading(false); - MailPoet.Notice.error( - MailPoet.I18n.t('serverError') + error.statusText.toLowerCase() + '.' - ); }); }); }); diff --git a/lib/Subscribers/ImportExport/Export/Export.php b/lib/Subscribers/ImportExport/Export/Export.php index dcfce2f658..ac2ffc2eba 100644 --- a/lib/Subscribers/ImportExport/Export/Export.php +++ b/lib/Subscribers/ImportExport/Export/Export.php @@ -58,17 +58,11 @@ class Export { ) ); } catch(\Exception $e) { - return array( - 'result' => false, - 'errors' => array($e->getMessage()) - ); + throw new \Exception($e->getMessage()); } return array( - 'result' => true, - 'data' => array( - 'totalExported' => $processed_subscribers, - 'exportFileURL' => $this->export_file_URL - ) + 'totalExported' => $processed_subscribers, + 'exportFileURL' => $this->export_file_URL ); }