started with template fixes

This commit is contained in:
Dennis Eichhorn 2024-03-29 15:26:00 +00:00
parent 1024e70062
commit 1ff035534b
6 changed files with 102 additions and 8 deletions

View File

@ -86,8 +86,7 @@
"from": "Knowledgebase",
"permission": { "permission": 4, "category": null, "element": null },
"parent": 1005901001,
"children": [],
"status": 3
"children": []
}
]
}

View File

@ -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,

View File

@ -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,
],
],
],

View File

@ -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;
}

View File

@ -34,6 +34,7 @@ final class NullWikiCategory extends WikiCategory
public function __construct(int $id = 0)
{
$this->id = $id;
parent::__construct();
}
/**

View File

@ -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(); ?>
<div class="row">
<div class="col-xs-12 col-md-6">
<section class="portlet">
<form method="<?= $isNew ? 'PUT' : 'POST'; ?>" action="<?= UriFactory::build('{/api}wiki/category?csrf={$CSRF}'); ?>">
<div class="portlet-head"><?= $this->getHtml('Category'); ?></div>
<div class="portlet-body">
<div class="form-group">
<label for="iId"><?= $this->getHtml('ID', '0', '0'); ?></label>
<input type="text" name="id" id="iId" value="<?= $category->id; ?>" disabled>
</div>
<div class="form-group">
<label for="iName"><?= $this->getHtml('Name'); ?></label>
<input type="text" name="name" id="iName" value="<?= $this->printHtml($category->getL11n()); ?>"<?= $isNew ? '' : ' disabled'; ?>>
</div>
<div class="form-group">
<label for="iApp"><?= $this->getHtml('App'); ?></label>
<select name="app" id="iApp">
<?php foreach ($this->data['apps'] as $app) : ?>
<option value="<?= $app->id; ?>"<?= $app->id === $category->app->id ? ' selected': ''; ?>><?= $this->printHtml($app->name); ?>
<?php endforeach; ?>
</select>
</div>
<div class="form-group">
<label for="iParent"><?= $this->getHtml('Parent'); ?></label>
<select name="parent" id="iParent">
<?php foreach ($this->data['parents'] as $parent) : ?>
<option value="<?= $parent->id; ?>"<?= $parent->id === $category->parent?->id ? ' selected': ''; ?>><?= $this->printHtml($parent->getL11n()); ?>
<?php endforeach; ?>
</select>
</div>
</div>
<div class="portlet-foot">
<?php if ($isNew) : ?>
<input id="iCreateSubmit" type="Submit" value="<?= $this->getHtml('Create', '0', '0'); ?>">
<?php else : ?>
<input id="iSaveSubmit" type="Submit" value="<?= $this->getHtml('Save', '0', '0'); ?>">
<?php endif; ?>
</div>
</form>
</section>
</div>
</div>
<?php if (!$isNew) : ?>
<div class="row">
<?= $this->data['l11nView']->render(
$this->data['l11nValues'],
[],
'{/api}wiki/category/l11n'
'{/api}wiki/category/l11n?csrf={$CSRF}'
);
?>
</div>
</div>
<?php endif; ?>