Create a new form for the user

[MAILPOET-1798]
This commit is contained in:
Pavel Dohnal
2020-02-10 11:02:37 +01:00
committed by Jack Kitterhing
parent 3443f082ef
commit 0fd954184d
7 changed files with 82 additions and 40 deletions

View File

@ -6,11 +6,13 @@ use MailPoet\AdminPages\PageRenderer;
use MailPoet\API\JSON\ResponseBuilders\CustomFieldsResponseBuilder;
use MailPoet\CustomFields\CustomFieldsRepository;
use MailPoet\Form\Block;
use MailPoet\Form\FormFactory;
use MailPoet\Form\Renderer as FormRenderer;
use MailPoet\Form\Util\Export;
use MailPoet\Models\Form;
use MailPoet\Models\Segment;
use MailPoet\Settings\Pages;
use MailPoet\WP\Functions as WPFunctions;
class FormEditor {
/** @var PageRenderer */
@ -28,22 +30,44 @@ class FormEditor {
/** @var Block\Date */
private $dateBlock;
/** @var WPFunctions */
private $wp;
/**
* @var FormFactory
*/
private $formsFactory;
public function __construct(
PageRenderer $pageRenderer,
CustomFieldsRepository $customFieldsRepository,
CustomFieldsResponseBuilder $customFieldsResponseBuilder,
FormRenderer $formRenderer,
Block\Date $dateBlock
Block\Date $dateBlock,
WPFunctions $wp,
FormFactory $formsFactory
) {
$this->pageRenderer = $pageRenderer;
$this->customFieldsRepository = $customFieldsRepository;
$this->customFieldsResponseBuilder = $customFieldsResponseBuilder;
$this->formRenderer = $formRenderer;
$this->dateBlock = $dateBlock;
$this->wp = $wp;
$this->formsFactory = $formsFactory;
}
public function render() {
$id = (isset($_GET['id']) ? (int)$_GET['id'] : 0);
if (isset($_GET['action']) && $_GET['action'] === 'create') {
$form = $this->formsFactory->createEmptyForm();
$this->wp->wpSafeRedirect(
$this->wp->getSiteUrl(null,
'/wp-admin/admin.php?page=mailpoet-form-editor&id=' . $form->id()
)
);
exit;
}
$form = Form::findOne($id);
if ($form instanceof Form) {
$form = $form->asArray();