Add automation editor page

[MAILPOET-4287]
This commit is contained in:
Jan Jakes
2022-05-03 16:09:37 +02:00
committed by Veljko V
parent 2584864228
commit 2c18b851e4
5 changed files with 64 additions and 0 deletions

View File

@ -0,0 +1,32 @@
<?php declare(strict_types=1);
namespace MailPoet\AdminPages\Pages;
use MailPoet\AdminPages\PageRenderer;
use MailPoet\WP\Functions as WPFunctions;
class AutomationEditor {
/** @var PageRenderer */
private $pageRenderer;
/** @var WPFunctions */
private $wp;
public function __construct(
PageRenderer $pageRenderer,
WPFunctions $wp
) {
$this->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'),
],
]);
}
}

View File

@ -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();
}

View File

@ -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);

View File

@ -12,6 +12,10 @@
</div>
</div>
<div>
<a href="<%= admin_url('admin.php?page=mailpoet-automation-editor') %>">Automation Editor</a>
</div>
<div id="mailpoet_automation"></div>
<% endblock %>

View File

@ -0,0 +1,5 @@
<% extends 'layout.html' %>
<% block container %>
<div>Automation Editor</div>
<% endblock %>