Add automation editor page
[MAILPOET-4287]
This commit is contained in:
32
mailpoet/lib/AdminPages/Pages/AutomationEditor.php
Normal file
32
mailpoet/lib/AdminPages/Pages/AutomationEditor.php
Normal 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'),
|
||||
],
|
||||
]);
|
||||
}
|
||||
}
|
@ -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();
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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 %>
|
||||
|
5
mailpoet/views/automation/editor.html
Normal file
5
mailpoet/views/automation/editor.html
Normal file
@ -0,0 +1,5 @@
|
||||
<% extends 'layout.html' %>
|
||||
|
||||
<% block container %>
|
||||
<div>Automation Editor</div>
|
||||
<% endblock %>
|
Reference in New Issue
Block a user