mirror of
https://github.com/Karaka-Management/oms-Knowledgebase.git
synced 2026-01-28 09:08:41 +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->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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,4 +28,5 @@ abstract class PermissionState extends Enum
|
|||
{
|
||||
public const CATEGORY = 1;
|
||||
public const WIKI = 2;
|
||||
public const APP = 3;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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',
|
||||
]];
|
||||
|
|
|
|||
|
|
@ -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',
|
||||
]];
|
||||
|
|
|
|||
|
|
@ -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