mirror of
https://github.com/Karaka-Management/oms-Knowledgebase.git
synced 2026-02-14 01:08:42 +00:00
draft create paths
This commit is contained in:
parent
0998c003fe
commit
0bb6b7990e
125
Admin/Routes/Web/Api.php
Normal file
125
Admin/Routes/Web/Api.php
Normal file
|
|
@ -0,0 +1,125 @@
|
||||||
|
<?php declare(strict_types=1);
|
||||||
|
|
||||||
|
use Modules\Knowledgebase\Controller\ApiController;
|
||||||
|
use Modules\Knowledgebase\Models\PermissionState;
|
||||||
|
use phpOMS\Account\PermissionType;
|
||||||
|
use phpOMS\Router\RouteVerb;
|
||||||
|
|
||||||
|
return [
|
||||||
|
'^.*/wiki/doc.*$' => [
|
||||||
|
[
|
||||||
|
'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,
|
||||||
|
],
|
||||||
|
],
|
||||||
|
],
|
||||||
|
];
|
||||||
|
|
@ -316,10 +316,13 @@ final class BackendController extends Controller
|
||||||
{
|
{
|
||||||
$view = new View($this->app->l11nManager, $request, $response);
|
$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->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;
|
return $view;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -28,4 +28,5 @@ abstract class PermissionState extends Enum
|
||||||
{
|
{
|
||||||
public const CATEGORY = 1;
|
public const CATEGORY = 1;
|
||||||
public const WIKI = 2;
|
public const WIKI = 2;
|
||||||
|
public const APP = 3;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -13,8 +13,12 @@
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
return ['Knowledgebase' => [
|
return ['Knowledgebase' => [
|
||||||
|
'Active' => 'Aktiv',
|
||||||
'Categories' => 'Kategorien',
|
'Categories' => 'Kategorien',
|
||||||
|
'Draft' => 'Draft',
|
||||||
|
'Language' => 'Sprache',
|
||||||
'Name' => 'Name',
|
'Name' => 'Name',
|
||||||
'Parent' => 'Übergeordnet',
|
'Parent' => 'Übergeordnet',
|
||||||
'Wiki' => 'Wiki',
|
'Wiki' => 'Wiki',
|
||||||
|
'Status' => 'Status',
|
||||||
]];
|
]];
|
||||||
|
|
|
||||||
|
|
@ -13,8 +13,12 @@
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
return ['Knowledgebase' => [
|
return ['Knowledgebase' => [
|
||||||
|
'Active' => 'Active',
|
||||||
'Categories' => 'Categories',
|
'Categories' => 'Categories',
|
||||||
|
'Draft' => 'Draft',
|
||||||
|
'Language' => 'Language',
|
||||||
'Name' => 'Name',
|
'Name' => 'Name',
|
||||||
'Parent' => 'Parent',
|
'Parent' => 'Parent',
|
||||||
'Wiki' => 'Wiki',
|
'Wiki' => 'Wiki',
|
||||||
|
'Status' => 'Status',
|
||||||
]];
|
]];
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,84 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Orange Management
|
||||||
|
*
|
||||||
|
* PHP Version 7.4
|
||||||
|
*
|
||||||
|
* @package Modules\News
|
||||||
|
* @copyright Dennis Eichhorn
|
||||||
|
* @license OMS License 1.0
|
||||||
|
* @version 1.0.0
|
||||||
|
* @link https://orange-management.org
|
||||||
|
*/
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
use Modules\Knowledgebase\Models\NullWikiDoc;
|
||||||
|
use phpOMS\Uri\UriFactory;
|
||||||
|
use Modules\Knowledgebase\Models\WikiStatus;
|
||||||
|
|
||||||
|
/** @var \Modules\Knowledgebase\Models\WikiDoc $wiki */
|
||||||
|
$wiki = $this->getData('doc') ?? new NullWikiDoc();
|
||||||
|
$isNewDoc = $wiki instanceof NullWikiDoc;
|
||||||
|
$languages = \phpOMS\Localization\ISO639Enum::getConstants();
|
||||||
|
|
||||||
|
/** @var \phpOMS\Views\View $this */
|
||||||
|
echo $this->getData('nav')->render(); ?>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xs-12 col-md-9">
|
||||||
|
<div id="testEditor" class="m-editor">
|
||||||
|
<section class="portlet">
|
||||||
|
<div class="portlet-body">
|
||||||
|
<input id="iTitle" type="text" name="title" form="docForm" value="<?= $wiki->getName(); ?>">
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="portlet">
|
||||||
|
<div class="portlet-body">
|
||||||
|
<?= $this->getData('editor')->render('iWiki'); ?>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<div class="box wf-100">
|
||||||
|
<?= $this->getData('editor')->getData('text')->render('iWiki', 'plain', 'docForm', $wiki->getDocRaw(), $wiki->getDoc()); ?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-xs-12 col-md-3">
|
||||||
|
<section class="portlet">
|
||||||
|
<form id="docForm" method="<?= $isNewDoc ? 'PUT' : 'POST'; ?>" action="<?= UriFactory::build('{/api}wiki?' . ($isNewDoc ? '' : 'id={?id}&') . 'csrf={$CSRF}'); ?>">
|
||||||
|
<div class="portlet-head"><?= $this->getHtml('Status'); ?></div>
|
||||||
|
<div class="portlet-body">
|
||||||
|
<table class="layout wf-100">
|
||||||
|
<tr><td>
|
||||||
|
<select name="status" id="iStatus">
|
||||||
|
<option value="<?= $this->printHtml(WikiStatus::DRAFT); ?>"<?= $wiki->getStatus() === WikiStatus::DRAFT ? ' selected' : ''; ?>><?= $this->getHtml('Draft'); ?>
|
||||||
|
<option value="<?= $this->printHtml(WikiStatus::ACTIVE); ?>"<?= $wiki->getStatus() === WikiStatus::ACTIVE ? ' selected' : ''; ?>><?= $this->getHtml('Active'); ?>
|
||||||
|
</select>
|
||||||
|
<tr><td><label for="iLanguages"><?= $this->getHtml('Language'); ?></label>
|
||||||
|
<tr><td>
|
||||||
|
<select id="iLanguages" name="lang">
|
||||||
|
<?php foreach ($languages as $code => $language) : $code = \strtolower(\substr($code, 1)); ?>
|
||||||
|
<option value="<?= $this->printHtml($code); ?>"<?= $this->printHtml($code === $wiki->getLanguage() ? ' selected' : ''); ?>><?= $this->printHtml($language); ?>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</select>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="portlet-foot">
|
||||||
|
<table class="layout wf-100">
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<?php if ($isNewDoc) : ?>
|
||||||
|
<a href="<?= UriFactory::build('/wiki/dashboard'); ?>" class="button"><?= $this->getHtml('Delete', '0', '0'); ?></a>
|
||||||
|
<?php else : ?>
|
||||||
|
<input type="submit" name="deleteButton" id="iDeleteButton" value="<?= $this->getHtml('Delete', '0', '0'); ?>">
|
||||||
|
<?php endif; ?>
|
||||||
|
<td class="rightText">
|
||||||
|
<input type="submit" name="saveButton" id="iSaveButton" value="<?= $this->getHtml('Save', '0', '0'); ?>">
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
Loading…
Reference in New Issue
Block a user