Add new form editor hello world
[SHOP-2450]
This commit is contained in:
committed by
Jack Kitterhing
parent
7655a3dd55
commit
ac0fd14c7c
14
assets/js/src/form_editor/index.jsx
Normal file
14
assets/js/src/form_editor/index.jsx
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import ReactDOM from 'react-dom';
|
||||||
|
|
||||||
|
const appElement = document.querySelector('#mailpoet_form_edit');
|
||||||
|
|
||||||
|
if (appElement) {
|
||||||
|
ReactDOM.render(
|
||||||
|
<h1>
|
||||||
|
Here comes editor for:
|
||||||
|
{window.mailpoet_form_data.name}
|
||||||
|
</h1>,
|
||||||
|
appElement
|
||||||
|
);
|
||||||
|
}
|
@ -3,6 +3,7 @@
|
|||||||
namespace MailPoet\AdminPages\Pages;
|
namespace MailPoet\AdminPages\Pages;
|
||||||
|
|
||||||
use MailPoet\AdminPages\PageRenderer;
|
use MailPoet\AdminPages\PageRenderer;
|
||||||
|
use MailPoet\Features\FeaturesController;
|
||||||
use MailPoet\Form\Block;
|
use MailPoet\Form\Block;
|
||||||
use MailPoet\Form\Renderer as FormRenderer;
|
use MailPoet\Form\Renderer as FormRenderer;
|
||||||
use MailPoet\Models\Form;
|
use MailPoet\Models\Form;
|
||||||
@ -13,8 +14,12 @@ class FormEditor {
|
|||||||
/** @var PageRenderer */
|
/** @var PageRenderer */
|
||||||
private $page_renderer;
|
private $page_renderer;
|
||||||
|
|
||||||
function __construct(PageRenderer $page_renderer) {
|
/** @var FeaturesController */
|
||||||
|
private $features_controller;
|
||||||
|
|
||||||
|
function __construct(PageRenderer $page_renderer, FeaturesController $features_controller) {
|
||||||
$this->page_renderer = $page_renderer;
|
$this->page_renderer = $page_renderer;
|
||||||
|
$this->features_controller = $features_controller;
|
||||||
}
|
}
|
||||||
|
|
||||||
function render() {
|
function render() {
|
||||||
@ -35,6 +40,11 @@ class FormEditor {
|
|||||||
'sub_menu' => 'mailpoet-forms',
|
'sub_menu' => 'mailpoet-forms',
|
||||||
];
|
];
|
||||||
|
|
||||||
$this->page_renderer->displayPage('form/editor.html', $data);
|
if ($this->features_controller->isSupported(FeaturesController::NEW_FORM_EDITOR)) {
|
||||||
|
$this->page_renderer->displayPage('form/editor.html', $data);
|
||||||
|
} else {
|
||||||
|
$this->page_renderer->displayPage('form/editor_legacy.html', $data);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
12
views/form/editor.html
Normal file
12
views/form/editor.html
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
<% extends 'layout.html' %>
|
||||||
|
<% block content %>
|
||||||
|
<div id="mailpoet_form_edit">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
<% autoescape 'js' %>
|
||||||
|
var mailpoet_form_data = <%= json_encode(form) %>;
|
||||||
|
<% endautoescape %>
|
||||||
|
</script>
|
||||||
|
<%= javascript('form_editor.js')%>
|
||||||
|
<% endblock %>
|
@ -360,10 +360,22 @@ const testConfig = {
|
|||||||
'jquery': 'jQuery',
|
'jquery': 'jQuery',
|
||||||
'interact': 'interact',
|
'interact': 'interact',
|
||||||
'spectrum': 'spectrum',
|
'spectrum': 'spectrum',
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
module.exports = [adminConfig, publicConfig, migratorConfig, testConfig].map((config) => {
|
// FormEditor config
|
||||||
|
const formEditorConfig = {
|
||||||
|
name: 'form_editor',
|
||||||
|
entry: {
|
||||||
|
form_editor: 'form_editor/index.jsx',
|
||||||
|
},
|
||||||
|
externals: {
|
||||||
|
'jquery': 'jQuery',
|
||||||
|
'mailpoet': 'MailPoet',
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
module.exports = [adminConfig, publicConfig, migratorConfig, formEditorConfig, testConfig].map((config) => {
|
||||||
if (config.name !== 'test') {
|
if (config.name !== 'test') {
|
||||||
config.plugins = config.plugins || [];
|
config.plugins = config.plugins || [];
|
||||||
config.plugins.push(
|
config.plugins.push(
|
||||||
|
Reference in New Issue
Block a user