From 1ff035534b212add71353743d42fc4992f74f0b5 Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Fri, 29 Mar 2024 15:26:00 +0000 Subject: [PATCH] started with template fixes --- Admin/Install/Navigation.install.json | 3 +- Admin/Routes/Web/Api.php | 14 ++++++ Admin/Routes/Web/Backend.php | 6 +-- Controller/BackendController.php | 29 +++++++++++- Models/NullWikiCategory.php | 1 + Theme/Backend/wiki-category-view.tpl.php | 57 +++++++++++++++++++++++- 6 files changed, 102 insertions(+), 8 deletions(-) diff --git a/Admin/Install/Navigation.install.json b/Admin/Install/Navigation.install.json index b14a1f2..2004dc1 100755 --- a/Admin/Install/Navigation.install.json +++ b/Admin/Install/Navigation.install.json @@ -86,8 +86,7 @@ "from": "Knowledgebase", "permission": { "permission": 4, "category": null, "element": null }, "parent": 1005901001, - "children": [], - "status": 3 + "children": [] } ] } diff --git a/Admin/Routes/Web/Api.php b/Admin/Routes/Web/Api.php index 9bb93b8..c359c52 100755 --- a/Admin/Routes/Web/Api.php +++ b/Admin/Routes/Web/Api.php @@ -22,6 +22,7 @@ return [ [ 'dest' => '\Modules\Knowledgebase\Controller\ApiController:apiWikiDocCreate', 'verb' => RouteVerb::PUT, + 'csrf' => true, 'permission' => [ 'module' => ApiController::NAME, 'type' => PermissionType::CREATE, @@ -31,6 +32,7 @@ return [ [ 'dest' => '\Modules\Knowledgebase\Controller\ApiController:apiWikiDocUpdate', 'verb' => RouteVerb::SET, + 'csrf' => true, 'permission' => [ 'module' => ApiController::NAME, 'type' => PermissionType::MODIFY, @@ -40,6 +42,7 @@ return [ [ 'dest' => '\Modules\Knowledgebase\Controller\ApiController:apiWikiDocGet', 'verb' => RouteVerb::GET, + 'csrf' => true, 'permission' => [ 'module' => ApiController::NAME, 'type' => PermissionType::READ, @@ -49,6 +52,7 @@ return [ [ 'dest' => '\Modules\Knowledgebase\Controller\ApiController:apiWikiDocDelete', 'verb' => RouteVerb::DELETE, + 'csrf' => true, 'permission' => [ 'module' => ApiController::NAME, 'type' => PermissionType::DELETE, @@ -61,6 +65,7 @@ return [ [ 'dest' => '\Modules\Knowledgebase\Controller\ApiController:apiWikiCategoryCreate', 'verb' => RouteVerb::PUT, + 'csrf' => true, 'permission' => [ 'module' => ApiController::NAME, 'type' => PermissionType::CREATE, @@ -70,6 +75,7 @@ return [ [ 'dest' => '\Modules\Knowledgebase\Controller\ApiController:apiWikiCategoryUpdate', 'verb' => RouteVerb::SET, + 'csrf' => true, 'permission' => [ 'module' => ApiController::NAME, 'type' => PermissionType::MODIFY, @@ -79,6 +85,7 @@ return [ [ 'dest' => '\Modules\Knowledgebase\Controller\ApiController:apiWikiCategoryGet', 'verb' => RouteVerb::GET, + 'csrf' => true, 'permission' => [ 'module' => ApiController::NAME, 'type' => PermissionType::READ, @@ -88,6 +95,7 @@ return [ [ 'dest' => '\Modules\Knowledgebase\Controller\ApiController:apiWikiCategoryDelete', 'verb' => RouteVerb::DELETE, + 'csrf' => true, 'permission' => [ 'module' => ApiController::NAME, 'type' => PermissionType::DELETE, @@ -100,6 +108,7 @@ return [ [ 'dest' => '\Modules\Knowledgebase\Controller\ApiController:apiWikiAppCreate', 'verb' => RouteVerb::PUT, + 'csrf' => true, 'permission' => [ 'module' => ApiController::NAME, 'type' => PermissionType::CREATE, @@ -109,6 +118,7 @@ return [ [ 'dest' => '\Modules\Knowledgebase\Controller\ApiController:apiWikiAppUpdate', 'verb' => RouteVerb::SET, + 'csrf' => true, 'permission' => [ 'module' => ApiController::NAME, 'type' => PermissionType::MODIFY, @@ -118,6 +128,7 @@ return [ [ 'dest' => '\Modules\Knowledgebase\Controller\ApiController:apiWikiAppGet', 'verb' => RouteVerb::GET, + 'csrf' => true, 'permission' => [ 'module' => ApiController::NAME, 'type' => PermissionType::READ, @@ -127,6 +138,7 @@ return [ [ 'dest' => '\Modules\Knowledgebase\Controller\ApiController:apiWikiAppDelete', 'verb' => RouteVerb::DELETE, + 'csrf' => true, 'permission' => [ 'module' => ApiController::NAME, 'type' => PermissionType::DELETE, @@ -139,6 +151,7 @@ return [ [ 'dest' => '\Modules\Knowledgebase\Controller\ApiController:apiWikiCategoryL11nCreate', 'verb' => RouteVerb::PUT, + 'csrf' => true, 'permission' => [ 'module' => ApiController::NAME, 'type' => PermissionType::READ, @@ -148,6 +161,7 @@ return [ [ 'dest' => '\Modules\Knowledgebase\Controller\ApiController:apiWikiCategoryL11nUpdate', 'verb' => RouteVerb::SET, + 'csrf' => true, 'permission' => [ 'module' => ApiController::NAME, 'type' => PermissionType::READ, diff --git a/Admin/Routes/Web/Backend.php b/Admin/Routes/Web/Backend.php index 24d8510..dc4a9cc 100755 --- a/Admin/Routes/Web/Backend.php +++ b/Admin/Routes/Web/Backend.php @@ -127,7 +127,7 @@ return [ 'permission' => [ 'module' => BackendController::NAME, 'type' => PermissionType::READ, - 'state' => PermissionCategory::CATEGORY, + 'state' => PermissionCategory::APP, ], ], ], @@ -138,7 +138,7 @@ return [ 'permission' => [ 'module' => BackendController::NAME, 'type' => PermissionType::READ, - 'state' => PermissionCategory::CATEGORY, + 'state' => PermissionCategory::APP, ], ], ], @@ -149,7 +149,7 @@ return [ 'permission' => [ 'module' => BackendController::NAME, 'type' => PermissionType::CREATE, - 'state' => PermissionCategory::CATEGORY, + 'state' => PermissionCategory::APP, ], ], ], diff --git a/Controller/BackendController.php b/Controller/BackendController.php index 9ca871b..4305f9c 100755 --- a/Controller/BackendController.php +++ b/Controller/BackendController.php @@ -18,6 +18,7 @@ use Modules\Knowledgebase\Models\NullWikiApp; use Modules\Knowledgebase\Models\NullWikiCategory; use Modules\Knowledgebase\Models\NullWikiDoc; use Modules\Knowledgebase\Models\PermissionCategory; +use Modules\Knowledgebase\Models\WikiApp; use Modules\Knowledgebase\Models\WikiAppMapper; use Modules\Knowledgebase\Models\WikiCategoryL11nMapper; use Modules\Knowledgebase\Models\WikiCategoryMapper; @@ -260,6 +261,19 @@ final class BackendController extends Controller $view->data['l11nValues'] = $l11nValues; + $view->data['apps'] = WikiAppMapper::getAll() + ->where('unit', [$this->app->unitId, null]) + ->executeGetArray(); + + $appIds = \array_map(function (WikiApp $app) { return $app->id; }, $view->data['apps']); + $appIds = \array_unique($appIds); + + $view->data['parents'] = WikiCategoryMapper::getAll() + ->with('name') + ->where('app', $appIds) + ->where('name/language', $request->header->l11n->language) + ->executeGetArray(); + return $view; } @@ -278,11 +292,24 @@ final class BackendController extends Controller public function viewKnowledgebaseCategoryCreate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface { $view = new View($this->app->l11nManager, $request, $response); - $view->setTemplate('/Modules/Knowledgebase/Theme/Backend/wiki-category-create'); + $view->setTemplate('/Modules/Knowledgebase/Theme/Backend/wiki-category-view'); $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1005901001, $request, $response); $view->data['category'] = new NullWikiCategory(); + $view->data['apps'] = WikiAppMapper::getAll() + ->where('unit', [$this->app->unitId, null]) + ->executeGetArray(); + + $appIds = \array_map(function (WikiApp $app) { return $app->id; }, $view->data['apps']); + $appIds = \array_unique($appIds); + + $view->data['parents'] = WikiCategoryMapper::getAll() + ->with('name') + ->where('app', $appIds) + ->where('name/language', $request->header->l11n->language) + ->executeGetArray(); + return $view; } diff --git a/Models/NullWikiCategory.php b/Models/NullWikiCategory.php index ac5f354..1e45f4c 100755 --- a/Models/NullWikiCategory.php +++ b/Models/NullWikiCategory.php @@ -34,6 +34,7 @@ final class NullWikiCategory extends WikiCategory public function __construct(int $id = 0) { $this->id = $id; + parent::__construct(); } /** diff --git a/Theme/Backend/wiki-category-view.tpl.php b/Theme/Backend/wiki-category-view.tpl.php index 7485123..36830ec 100644 --- a/Theme/Backend/wiki-category-view.tpl.php +++ b/Theme/Backend/wiki-category-view.tpl.php @@ -12,16 +12,69 @@ */ declare(strict_types=1); +use phpOMS\Uri\UriFactory; + /** @var \Modules\Knowledgebase\Models\WikiCategory */ $category = $this->data['category']; +$isNew = $category->id === 0; + /** @var \phpOMS\Views\View $this */ echo $this->data['nav']->render(); ?> + +
+
+
+
+
getHtml('Category'); ?>
+
+
+ + +
+ +
+ + > +
+ +
+ + +
+ +
+ + +
+
+
+ + + + + +
+
+
+
+
+ +
data['l11nView']->render( $this->data['l11nValues'], [], - '{/api}wiki/category/l11n' + '{/api}wiki/category/l11n?csrf={$CSRF}' ); ?> -
\ No newline at end of file + + \ No newline at end of file