From 835fa99d549767013544ba11d2813724080a925a Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Wed, 9 Nov 2016 21:14:37 +0100 Subject: [PATCH] Preparing editor CRUD --- Admin/Routes/Web/Api.php | 12 +++++++++ Controller.js | 0 Controller.php | 38 ++++++++++++++++++++++++++++- Theme/backend/editor-create.tpl.php | 2 +- 4 files changed, 50 insertions(+), 2 deletions(-) create mode 100644 Admin/Routes/Web/Api.php create mode 100644 Controller.js diff --git a/Admin/Routes/Web/Api.php b/Admin/Routes/Web/Api.php new file mode 100644 index 0000000..308d911 --- /dev/null +++ b/Admin/Routes/Web/Api.php @@ -0,0 +1,12 @@ + [ + [ + 'dest' => '\Modules\Editor\Controller:apiEditorCreate', + 'verb' => RouteVerb::SET, + ], + ], +]; diff --git a/Controller.js b/Controller.js new file mode 100644 index 0000000..e69de29 diff --git a/Controller.php b/Controller.php index c9f9185..dc8c824 100644 --- a/Controller.php +++ b/Controller.php @@ -94,7 +94,7 @@ class Controller extends ModuleAbstract implements WebInterface public function setUpEditorEditor(RequestAbstract $request, ResponseAbstract $response, $data = null) { $head = $response->get('Content')->getData('head'); - $head->addAsset(AssetType::JS, $request->getUri()->getBase() . 'Modules/Editor/ModuleEditor.js'); + $head->addAsset(AssetType::JS, $request->getUri()->getBase() . 'Modules/Editor/Controller.js'); } /** @@ -135,4 +135,40 @@ class Controller extends ModuleAbstract implements WebInterface return $view; } + private function validateEditorCreate(RequestAbstract $request) : array + { + $val = []; + if ( + ($val['title'] = empty($request->getData('title'))) + || ($val['plain'] = empty($request->getData('plain'))) + ) { + return $val; + } + + return []; + } + + /** + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param mixed $data Generic data + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function apiEditorCreate(RequestAbstract $request, ResponseAbstract $response, $data = null) + { + if (!empty($val = $this->validateEditorCreate($request))) { + $response->set('editor_create', new FormValidation($val)); + + return; + } + + $editorArticle = new Editor(); + + EditorMapper::create($editorArticle); + + $response->set('editor', $editorArticle->jsonSerialize()); + } + } diff --git a/Theme/backend/editor-create.tpl.php b/Theme/backend/editor-create.tpl.php index a663d66..baa93e1 100644 --- a/Theme/backend/editor-create.tpl.php +++ b/Theme/backend/editor-create.tpl.php @@ -113,7 +113,7 @@ echo $this->getData('nav')->render(); ?>