Add subscribers import/export pages classes

[MAILPOET-2200]
This commit is contained in:
Rostislav Wolny
2019-07-15 17:22:14 +02:00
committed by M. Shull
parent f8e178e6e7
commit 81d06065be
5 changed files with 70 additions and 30 deletions

View File

@@ -0,0 +1,24 @@
<?php
namespace MailPoet\AdminPages\Pages;
use MailPoet\AdminPages\PageRenderer;
use MailPoet\Subscribers\ImportExport\ImportExportFactory;
if (!defined('ABSPATH')) exit;
class SubscribersExport {
/** @var PageRenderer */
private $page_renderer;
function __construct(PageRenderer $page_renderer) {
$this->page_renderer = $page_renderer;
}
function render() {
$export = new ImportExportFactory(ImportExportFactory::EXPORT_ACTION);
$data = $export->bootstrap();
$data['sub_menu'] = 'mailpoet-subscribers';
$this->page_renderer->displayPage('subscribers/importExport/export.html', $data);
}
}

View File

@@ -0,0 +1,40 @@
<?php
namespace MailPoet\AdminPages\Pages;
use MailPoet\AdminPages\PageRenderer;
use MailPoet\Form\Block;
use MailPoet\Models\ModelValidator;
use MailPoet\Subscribers\ImportExport\ImportExportFactory;
use MailPoet\Util\Installation;
if (!defined('ABSPATH')) exit;
class SubscribersImport {
/** @var PageRenderer */
private $page_renderer;
/** @var Installation */
private $installation;
function __construct(PageRenderer $page_renderer, Installation $installation) {
$this->page_renderer = $page_renderer;
$this->installation = $installation;
}
function render() {
$import = new ImportExportFactory(ImportExportFactory::IMPORT_ACTION);
$data = $import->bootstrap();
$data = array_merge($data, [
'date_types' => Block\Date::getDateTypes(),
'date_formats' => Block\Date::getDateFormats(),
'month_names' => Block\Date::getMonthNames(),
'sub_menu' => 'mailpoet-subscribers',
'role_based_emails' => json_encode(ModelValidator::ROLE_EMAILS),
]);
$data['is_new_user'] = $this->installation->isNewInstallation();
$this->page_renderer->displayPage('subscribers/importExport/import.html', $data);
}
}

View File

@@ -14,20 +14,18 @@ use MailPoet\AdminPages\Pages\RevenueTrackingPermission;
use MailPoet\AdminPages\Pages\Segments; use MailPoet\AdminPages\Pages\Segments;
use MailPoet\AdminPages\Pages\Settings; use MailPoet\AdminPages\Pages\Settings;
use MailPoet\AdminPages\Pages\Subscribers; use MailPoet\AdminPages\Pages\Subscribers;
use MailPoet\AdminPages\Pages\SubscribersExport;
use MailPoet\AdminPages\Pages\SubscribersImport;
use MailPoet\AdminPages\Pages\Update; use MailPoet\AdminPages\Pages\Update;
use MailPoet\AdminPages\Pages\WelcomeWizard; use MailPoet\AdminPages\Pages\WelcomeWizard;
use MailPoet\AdminPages\Pages\WooCommerceListImport; use MailPoet\AdminPages\Pages\WooCommerceListImport;
use MailPoet\DI\ContainerWrapper; use MailPoet\DI\ContainerWrapper;
use MailPoet\Form\Block; use MailPoet\Form\Block;
use MailPoet\Form\Renderer as FormRenderer; use MailPoet\Form\Renderer as FormRenderer;
use MailPoet\Listing;
use MailPoet\Models\Form; use MailPoet\Models\Form;
use MailPoet\Models\ModelValidator;
use MailPoet\Models\Segment; use MailPoet\Models\Segment;
use MailPoet\Models\Subscriber; use MailPoet\Models\Subscriber;
use MailPoet\Settings\Pages; use MailPoet\Settings\Pages;
use MailPoet\Subscribers\ImportExport\ImportExportFactory;
use MailPoet\Util\Installation;
use MailPoet\Util\License\Features\Subscribers as SubscribersFeature; use MailPoet\Util\License\Features\Subscribers as SubscribersFeature;
use MailPoet\Util\License\License; use MailPoet\Util\License\License;
use MailPoet\WP\Functions as WPFunctions; use MailPoet\WP\Functions as WPFunctions;
@@ -51,9 +49,6 @@ class Menu {
/** @var PageRenderer */ /** @var PageRenderer */
private $page_renderer; private $page_renderer;
/** @var Installation */
private $installation;
/** @var ContainerWrapper */ /** @var ContainerWrapper */
private $container; private $container;
@@ -64,14 +59,12 @@ class Menu {
WPFunctions $wp, WPFunctions $wp,
ServicesChecker $servicesChecker, ServicesChecker $servicesChecker,
PageRenderer $page_renderer, PageRenderer $page_renderer,
Installation $installation,
ContainerWrapper $containerWrapper ContainerWrapper $containerWrapper
) { ) {
$this->access_control = $access_control; $this->access_control = $access_control;
$this->wp = $wp; $this->wp = $wp;
$this->servicesChecker = $servicesChecker; $this->servicesChecker = $servicesChecker;
$this->page_renderer = $page_renderer; $this->page_renderer = $page_renderer;
$this->installation = $installation;
$this->container = $containerWrapper; $this->container = $containerWrapper;
} }
@@ -467,26 +460,11 @@ class Menu {
} }
function import() { function import() {
$import = new ImportExportFactory(ImportExportFactory::IMPORT_ACTION); $this->container->get(SubscribersImport::class)->render();
$data = $import->bootstrap();
$data = array_merge($data, [
'date_types' => Block\Date::getDateTypes(),
'date_formats' => Block\Date::getDateFormats(),
'month_names' => Block\Date::getMonthNames(),
'sub_menu' => 'mailpoet-subscribers',
'role_based_emails' => json_encode(ModelValidator::ROLE_EMAILS),
]);
$data['is_new_user'] = $this->installation->isNewInstallation();
$this->page_renderer->displayPage('subscribers/importExport/import.html', $data);
} }
function export() { function export() {
$export = new ImportExportFactory(ImportExportFactory::EXPORT_ACTION); $this->container->get(SubscribersExport::class)->render();
$data = $export->bootstrap();
$data['sub_menu'] = 'mailpoet-subscribers';
$this->page_renderer->displayPage('subscribers/importExport/export.html', $data);
} }
function formEditor() { function formEditor() {

View File

@@ -41,6 +41,8 @@ class ContainerConfigurator implements IContainerConfigurator {
$container->autowire(\MailPoet\AdminPages\Pages\Segments::class); $container->autowire(\MailPoet\AdminPages\Pages\Segments::class);
$container->autowire(\MailPoet\AdminPages\Pages\Settings::class); $container->autowire(\MailPoet\AdminPages\Pages\Settings::class);
$container->autowire(\MailPoet\AdminPages\Pages\Subscribers::class); $container->autowire(\MailPoet\AdminPages\Pages\Subscribers::class);
$container->autowire(\MailPoet\AdminPages\Pages\SubscribersExport::class);
$container->autowire(\MailPoet\AdminPages\Pages\SubscribersImport::class);
$container->autowire(\MailPoet\AdminPages\Pages\Update::class); $container->autowire(\MailPoet\AdminPages\Pages\Update::class);
$container->autowire(\MailPoet\AdminPages\Pages\WelcomeWizard::class); $container->autowire(\MailPoet\AdminPages\Pages\WelcomeWizard::class);
$container->autowire(\MailPoet\AdminPages\Pages\WooCommerceListImport::class); $container->autowire(\MailPoet\AdminPages\Pages\WooCommerceListImport::class);

View File

@@ -8,8 +8,6 @@ use MailPoet\Config\AccessControl;
use MailPoet\Config\Menu; use MailPoet\Config\Menu;
use MailPoet\Config\ServicesChecker; use MailPoet\Config\ServicesChecker;
use MailPoet\DI\ContainerWrapper; use MailPoet\DI\ContainerWrapper;
use MailPoet\Settings\SettingsController;
use MailPoet\Util\Installation;
use MailPoet\WP\Functions as WPFunctions; use MailPoet\WP\Functions as WPFunctions;
class MenuTest extends \MailPoetTest { class MenuTest extends \MailPoetTest {
@@ -88,13 +86,11 @@ class MenuTest extends \MailPoetTest {
private function getMenu(PageRenderer $renderer) { private function getMenu(PageRenderer $renderer) {
$wp = new WPFunctions; $wp = new WPFunctions;
$settings = new SettingsController;
return new Menu( return new Menu(
new AccessControl(), new AccessControl(),
$wp, $wp,
new ServicesChecker, new ServicesChecker,
$renderer, $renderer,
new Installation($settings, $wp),
ContainerWrapper::getInstance() ContainerWrapper::getInstance()
); );
} }