diff --git a/Admin/Routes/Web/Api.php b/Admin/Routes/Web/Api.php new file mode 100644 index 0000000..723ad7e --- /dev/null +++ b/Admin/Routes/Web/Api.php @@ -0,0 +1,125 @@ + [ + [ + 'dest' => '\Modules\Knowledgebase\Controller\ApiController:apiWikiDocCreate', + 'verb' => RouteVerb::PUT, + 'permission' => [ + 'module' => ApiController::MODULE_NAME, + 'type' => PermissionType::CREATE, + 'state' => PermissionState::WIKI, + ], + ], + [ + 'dest' => '\Modules\Knowledgebase\Controller\ApiController:apiWikiDocUpdate', + 'verb' => RouteVerb::SET, + 'permission' => [ + 'module' => ApiController::MODULE_NAME, + 'type' => PermissionType::MODIFY, + 'state' => PermissionState::WIKI, + ], + ], + [ + 'dest' => '\Modules\Knowledgebase\Controller\ApiController:apiWikiDocGet', + 'verb' => RouteVerb::GET, + 'permission' => [ + 'module' => ApiController::MODULE_NAME, + 'type' => PermissionType::READ, + 'state' => PermissionState::WIKI, + ], + ], + [ + 'dest' => '\Modules\Knowledgebase\Controller\ApiController:apiWikiDocDelete', + 'verb' => RouteVerb::DELETE, + 'permission' => [ + 'module' => ApiController::MODULE_NAME, + 'type' => PermissionType::DELETE, + 'state' => PermissionState::WIKI, + ], + ], + ], + + '^.*/wiki/category.*$' => [ + [ + 'dest' => '\Modules\Knowledgebase\Controller\ApiController:apiWikiCategoryCreate', + 'verb' => RouteVerb::PUT, + 'permission' => [ + 'module' => ApiController::MODULE_NAME, + 'type' => PermissionType::CREATE, + 'state' => PermissionState::CATEGORY, + ], + ], + [ + 'dest' => '\Modules\Knowledgebase\Controller\ApiController:apiWikiCategoryUpdate', + 'verb' => RouteVerb::SET, + 'permission' => [ + 'module' => ApiController::MODULE_NAME, + 'type' => PermissionType::MODIFY, + 'state' => PermissionState::CATEGORY, + ], + ], + [ + 'dest' => '\Modules\Knowledgebase\Controller\ApiController:apiWikiCategoryGet', + 'verb' => RouteVerb::GET, + 'permission' => [ + 'module' => ApiController::MODULE_NAME, + 'type' => PermissionType::READ, + 'state' => PermissionState::CATEGORY, + ], + ], + [ + 'dest' => '\Modules\Knowledgebase\Controller\ApiController:apiWikiCategoryDelete', + 'verb' => RouteVerb::DELETE, + 'permission' => [ + 'module' => ApiController::MODULE_NAME, + 'type' => PermissionType::DELETE, + 'state' => PermissionState::CATEGORY, + ], + ], + ], + + '^.*/wiki/app.*$' => [ + [ + 'dest' => '\Modules\Knowledgebase\Controller\ApiController:apiWikiAppCreate', + 'verb' => RouteVerb::PUT, + 'permission' => [ + 'module' => ApiController::MODULE_NAME, + 'type' => PermissionType::CREATE, + 'state' => PermissionState::APP, + ], + ], + [ + 'dest' => '\Modules\Knowledgebase\Controller\ApiController:apiWikiAppUpdate', + 'verb' => RouteVerb::SET, + 'permission' => [ + 'module' => ApiController::MODULE_NAME, + 'type' => PermissionType::MODIFY, + 'state' => PermissionState::APP, + ], + ], + [ + 'dest' => '\Modules\Knowledgebase\Controller\ApiController:apiWikiAppGet', + 'verb' => RouteVerb::GET, + 'permission' => [ + 'module' => ApiController::MODULE_NAME, + 'type' => PermissionType::READ, + 'state' => PermissionState::APP, + ], + ], + [ + 'dest' => '\Modules\Knowledgebase\Controller\ApiController:apiWikiAppDelete', + 'verb' => RouteVerb::DELETE, + 'permission' => [ + 'module' => ApiController::MODULE_NAME, + 'type' => PermissionType::DELETE, + 'state' => PermissionState::APP, + ], + ], + ], +]; diff --git a/Controller/BackendController.php b/Controller/BackendController.php index 260403d..0212c35 100755 --- a/Controller/BackendController.php +++ b/Controller/BackendController.php @@ -316,10 +316,13 @@ final class BackendController extends Controller { $view = new View($this->app->l11nManager, $request, $response); - $view->setTemplate('/Modules/Knowledgebase/Theme/Backend/wiki-category-single'); + $view->setTemplate('/Modules/Knowledgebase/Theme/Backend/wiki-doc-create'); $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1005901001, $request, $response)); - $view->setData('category', new NullWikiDoc()); + $editor = new \Modules\Editor\Theme\Backend\Components\Editor\BaseView($this->app->l11nManager, $request, $response); + $view->addData('editor', $editor); + + $view->setData('doc', new NullWikiDoc()); return $view; } diff --git a/Models/PermissionState.php b/Models/PermissionState.php index 5019e18..2f28e73 100755 --- a/Models/PermissionState.php +++ b/Models/PermissionState.php @@ -28,4 +28,5 @@ abstract class PermissionState extends Enum { public const CATEGORY = 1; public const WIKI = 2; + public const APP = 3; } diff --git a/Theme/Backend/Lang/de.lang.php b/Theme/Backend/Lang/de.lang.php index d56a8e2..92b4d20 100755 --- a/Theme/Backend/Lang/de.lang.php +++ b/Theme/Backend/Lang/de.lang.php @@ -13,8 +13,12 @@ declare(strict_types=1); return ['Knowledgebase' => [ + 'Active' => 'Aktiv', 'Categories' => 'Kategorien', + 'Draft' => 'Draft', + 'Language' => 'Sprache', 'Name' => 'Name', 'Parent' => 'Übergeordnet', 'Wiki' => 'Wiki', + 'Status' => 'Status', ]]; diff --git a/Theme/Backend/Lang/en.lang.php b/Theme/Backend/Lang/en.lang.php index 971065f..1029e5e 100755 --- a/Theme/Backend/Lang/en.lang.php +++ b/Theme/Backend/Lang/en.lang.php @@ -13,8 +13,12 @@ declare(strict_types=1); return ['Knowledgebase' => [ + 'Active' => 'Active', 'Categories' => 'Categories', + 'Draft' => 'Draft', + 'Language' => 'Language', 'Name' => 'Name', 'Parent' => 'Parent', 'Wiki' => 'Wiki', + 'Status' => 'Status', ]]; diff --git a/Theme/Backend/wiki-doc-create.tpl.php b/Theme/Backend/wiki-doc-create.tpl.php index e69de29..0dc3252 100755 --- a/Theme/Backend/wiki-doc-create.tpl.php +++ b/Theme/Backend/wiki-doc-create.tpl.php @@ -0,0 +1,84 @@ +getData('doc') ?? new NullWikiDoc(); +$isNewDoc = $wiki instanceof NullWikiDoc; +$languages = \phpOMS\Localization\ISO639Enum::getConstants(); + +/** @var \phpOMS\Views\View $this */ +echo $this->getData('nav')->render(); ?> + +