From cf957ad6efa5e73b9d6ca48fe2a4aaa52b79b414 Mon Sep 17 00:00:00 2001 From: Pavel Dohnal Date: Wed, 13 Feb 2019 14:53:22 +0100 Subject: [PATCH] Show import validation only if more than 500 rows [MAILPOET-1626] --- .../src/subscribers/importExport/import.jsx | 41 +++++++++++++++++-- .../SubscriberManageImportExportCest.php | 6 --- 2 files changed, 38 insertions(+), 9 deletions(-) diff --git a/assets/js/src/subscribers/importExport/import.jsx b/assets/js/src/subscribers/importExport/import.jsx index a61736c942..3ba4d92409 100644 --- a/assets/js/src/subscribers/importExport/import.jsx +++ b/assets/js/src/subscribers/importExport/import.jsx @@ -11,6 +11,34 @@ import Moment from 'moment'; import sanitizeCSVData from './sanitize_csv_data.jsx'; import StepInputValidation from './step_input_validation.jsx'; +const SUBSCRIBERS_LIMIT_FOR_VALIDATION = 500; + +function getMethodSelectionNextStepLink(importData) { + if (importData === undefined) { + return 'step_data_manipulation'; + } + if (importData.subscribersCount === undefined) { + return 'step_data_manipulation'; + } + if (importData.subscribersCount < SUBSCRIBERS_LIMIT_FOR_VALIDATION) { + return 'step_data_manipulation'; + } + return 'step_input_validation'; +} + +function getDataManipulationPreviousStepLink(importData) { + if (importData === undefined) { + return 'step_method_selection'; + } + if (importData.subscribersCount === undefined) { + return 'step_method_selection'; + } + if (importData.subscribersCount < SUBSCRIBERS_LIMIT_FOR_VALIDATION) { + return 'step_method_selection'; + } + return 'step_input_validation'; +} + jQuery(document).ready(() => { if (!jQuery('#mailpoet_subscribers_import').length) { return; @@ -116,7 +144,10 @@ jQuery(document).ready(() => { source: isFile ? 'file upload' : 'pasted data', 'MailPoet Free version': window.mailpoet_version, }); - router.navigate('step_input_validation', { trigger: true }); + router.navigate( + getMethodSelectionNextStepLink(window.importData.step_method_selection), + { trigger: true } + ); } else { MailPoet.Modal.loading(false); let errorNotice = MailPoet.I18n.t('noValidRecords'); @@ -295,7 +326,7 @@ jQuery(document).ready(() => { source: 'MailChimp', 'MailPoet Free version': window.mailpoet_version, }); - router.navigate('step_input_validation', { trigger: true }); + router.navigate('step_data_manipulation', { trigger: true }); }).fail((response) => { if (response.errors.length > 0) { MailPoet.Notice.error( @@ -319,6 +350,7 @@ jQuery(document).ready(() => { ReactDOM.render( , container ); @@ -841,7 +873,10 @@ jQuery(document).ready(() => { }); previousStepButton.off().on('click', () => { - router.navigate('step_input_validation', { trigger: true }); + router.navigate( + getDataManipulationPreviousStepLink(window.importData.step_method_selection), + { trigger: true } + ); }); nextStepButton.off().on('click', (event) => { diff --git a/tests/acceptance/SubscriberManageImportExportCest.php b/tests/acceptance/SubscriberManageImportExportCest.php index 50ad226ef6..8ff325acf6 100644 --- a/tests/acceptance/SubscriberManageImportExportCest.php +++ b/tests/acceptance/SubscriberManageImportExportCest.php @@ -17,12 +17,6 @@ class SubscriberManageImportExportCest { $I->attachFile('[data-automation-id="import-file-upload-input"]', 'MailPoetImportList.csv'); $I->click('#method_file [data-automation-id="import-next-step"]'); - // input validation step - $I->click('[data-automation-id="subscribers_agreed"]'); - $I->click('[data-automation-id="sent_once_last_year"]'); - $I->click('[data-automation-id="input_understand"]'); - $I->click('#step_input_validation [data-automation-id="import-next-step"]'); - //click is to trigger dropdown to display selections $I->click('input.select2-search__field'); //choose My First List