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\Settings;
use MailPoet\AdminPages\Pages\Subscribers;
use MailPoet\AdminPages\Pages\SubscribersExport;
use MailPoet\AdminPages\Pages\SubscribersImport;
use MailPoet\AdminPages\Pages\Update;
use MailPoet\AdminPages\Pages\WelcomeWizard;
use MailPoet\AdminPages\Pages\WooCommerceListImport;
use MailPoet\DI\ContainerWrapper;
use MailPoet\Form\Block;
use MailPoet\Form\Renderer as FormRenderer;
use MailPoet\Listing;
use MailPoet\Models\Form;
use MailPoet\Models\ModelValidator;
use MailPoet\Models\Segment;
use MailPoet\Models\Subscriber;
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\License;
use MailPoet\WP\Functions as WPFunctions;
@@ -51,9 +49,6 @@ class Menu {
/** @var PageRenderer */
private $page_renderer;
/** @var Installation */
private $installation;
/** @var ContainerWrapper */
private $container;
@@ -64,14 +59,12 @@ class Menu {
WPFunctions $wp,
ServicesChecker $servicesChecker,
PageRenderer $page_renderer,
Installation $installation,
ContainerWrapper $containerWrapper
) {
$this->access_control = $access_control;
$this->wp = $wp;
$this->servicesChecker = $servicesChecker;
$this->page_renderer = $page_renderer;
$this->installation = $installation;
$this->container = $containerWrapper;
}
@@ -467,26 +460,11 @@ class Menu {
}
function import() {
$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);
$this->container->get(SubscribersImport::class)->render();
}
function export() {
$export = new ImportExportFactory(ImportExportFactory::EXPORT_ACTION);
$data = $export->bootstrap();
$data['sub_menu'] = 'mailpoet-subscribers';
$this->page_renderer->displayPage('subscribers/importExport/export.html', $data);
$this->container->get(SubscribersExport::class)->render();
}
function formEditor() {

View File

@@ -41,6 +41,8 @@ class ContainerConfigurator implements IContainerConfigurator {
$container->autowire(\MailPoet\AdminPages\Pages\Segments::class);
$container->autowire(\MailPoet\AdminPages\Pages\Settings::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\WelcomeWizard::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\ServicesChecker;
use MailPoet\DI\ContainerWrapper;
use MailPoet\Settings\SettingsController;
use MailPoet\Util\Installation;
use MailPoet\WP\Functions as WPFunctions;
class MenuTest extends \MailPoetTest {
@@ -88,13 +86,11 @@ class MenuTest extends \MailPoetTest {
private function getMenu(PageRenderer $renderer) {
$wp = new WPFunctions;
$settings = new SettingsController;
return new Menu(
new AccessControl(),
$wp,
new ServicesChecker,
$renderer,
new Installation($settings, $wp),
ContainerWrapper::getInstance()
);
}