From 2c18b851e45356f34a58fae3cc32b97276f6176c Mon Sep 17 00:00:00 2001 From: Jan Jakes Date: Tue, 3 May 2022 16:09:37 +0200 Subject: [PATCH] Add automation editor page [MAILPOET-4287] --- .../lib/AdminPages/Pages/AutomationEditor.php | 32 +++++++++++++++++++ mailpoet/lib/Config/Menu.php | 22 +++++++++++++ mailpoet/lib/DI/ContainerConfigurator.php | 1 + mailpoet/views/automation.html | 4 +++ mailpoet/views/automation/editor.html | 5 +++ 5 files changed, 64 insertions(+) create mode 100644 mailpoet/lib/AdminPages/Pages/AutomationEditor.php create mode 100644 mailpoet/views/automation/editor.html diff --git a/mailpoet/lib/AdminPages/Pages/AutomationEditor.php b/mailpoet/lib/AdminPages/Pages/AutomationEditor.php new file mode 100644 index 0000000000..77c36bf82c --- /dev/null +++ b/mailpoet/lib/AdminPages/Pages/AutomationEditor.php @@ -0,0 +1,32 @@ +pageRenderer = $pageRenderer; + $this->wp = $wp; + } + + public function render() { + $this->pageRenderer->displayPage('automation/editor.html', [ + 'sub_menu' => 'mailpoet-automation', + 'api' => [ + 'root' => rtrim($this->wp->escUrlRaw($this->wp->restUrl()), '/'), + 'nonce' => $this->wp->wpCreateNonce('wp_rest'), + ], + ]); + } +} diff --git a/mailpoet/lib/Config/Menu.php b/mailpoet/lib/Config/Menu.php index 24fb26d9fd..63df8c4313 100644 --- a/mailpoet/lib/Config/Menu.php +++ b/mailpoet/lib/Config/Menu.php @@ -3,6 +3,7 @@ namespace MailPoet\Config; use MailPoet\AdminPages\Pages\Automation; +use MailPoet\AdminPages\Pages\AutomationEditor; use MailPoet\AdminPages\Pages\ExperimentalFeatures; use MailPoet\AdminPages\Pages\FormEditor; use MailPoet\AdminPages\Pages\Forms; @@ -412,6 +413,23 @@ class Menu { 'mailpoet-automation', [$this, 'automation'] ); + + // Automation editor + $automationEditorPage = $this->wp->addSubmenuPage( + true, + $this->setPageTitle('Automation Editor'), + 'Automation Editor', + AccessControl::PERMISSION_MANAGE_EMAILS, + 'mailpoet-automation-editor', + [$this, 'automationEditor'] + ); + + // add body class for automation editor page + $this->wp->addAction('load-' . $automationEditorPage, function() { + $this->wp->addAction('admin_body_class', function ($classes) { + return ltrim($classes . ' block-editor-page'); + }); + }); } } @@ -448,6 +466,10 @@ class Menu { $this->container->get(Automation::class)->render(); } + public function automationEditor() { + $this->container->get(AutomationEditor::class)->render(); + } + public function experimentalFeatures() { $this->container->get(ExperimentalFeatures::class)->render(); } diff --git a/mailpoet/lib/DI/ContainerConfigurator.php b/mailpoet/lib/DI/ContainerConfigurator.php index 0148247cfd..0602dc4256 100644 --- a/mailpoet/lib/DI/ContainerConfigurator.php +++ b/mailpoet/lib/DI/ContainerConfigurator.php @@ -32,6 +32,7 @@ class ContainerConfigurator implements IContainerConfigurator { // AdminPages $container->autowire(\MailPoet\AdminPages\PageRenderer::class)->setPublic(true); $container->autowire(\MailPoet\AdminPages\Pages\Automation::class)->setPublic(true); + $container->autowire(\MailPoet\AdminPages\Pages\AutomationEditor::class)->setPublic(true); $container->autowire(\MailPoet\AdminPages\Pages\ExperimentalFeatures::class)->setPublic(true); $container->autowire(\MailPoet\AdminPages\Pages\FormEditor::class)->setPublic(true); $container->autowire(\MailPoet\AdminPages\Pages\Forms::class)->setPublic(true); diff --git a/mailpoet/views/automation.html b/mailpoet/views/automation.html index 5230d77511..ba36c69706 100644 --- a/mailpoet/views/automation.html +++ b/mailpoet/views/automation.html @@ -12,6 +12,10 @@ +
+ Automation Editor +
+
<% endblock %> diff --git a/mailpoet/views/automation/editor.html b/mailpoet/views/automation/editor.html new file mode 100644 index 0000000000..15f2d670dd --- /dev/null +++ b/mailpoet/views/automation/editor.html @@ -0,0 +1,5 @@ +<% extends 'layout.html' %> + +<% block container %> +
Automation Editor
+<% endblock %>