start working on wiki

This commit is contained in:
Dennis Eichhorn 2020-02-23 22:59:08 +01:00
parent cd8e44e0c5
commit ff6e521eb9
7 changed files with 248 additions and 51 deletions

View File

@ -33,21 +33,6 @@
"pid": "/wiki",
"type": 3,
"subtype": 1,
"name": "Create",
"uri": "{/prefix}wiki/doc/create?{?}",
"target": "self",
"icon": null,
"order": 5,
"from": "Knowledgebase",
"permission": { "permission": 4, "type": null, "element": null },
"parent": 1005901001,
"children": []
},
{
"id": 1005904001,
"pid": "/wiki",
"type": 3,
"subtype": 1,
"name": "Categories",
"uri": "{/prefix}wiki/category/list?{?}",
"target": "self",
@ -57,6 +42,36 @@
"permission": { "permission": 2, "type": null, "element": null },
"parent": 1005901001,
"children": []
},
{
"id": 1005904001,
"pid": "/wiki",
"type": 3,
"subtype": 1,
"name": "Create",
"uri": "{/prefix}wiki/doc/create?{?}",
"target": "self",
"icon": null,
"order": 10,
"from": "Knowledgebase",
"permission": { "permission": 4, "type": null, "element": null },
"parent": 1005901001,
"children": []
},
{
"id": 1005905001,
"pid": "/wiki",
"type": 3,
"subtype": 1,
"name": "Apps",
"uri": "{/prefix}wiki/app/list?{?}",
"target": "self",
"icon": null,
"order": 15,
"from": "Knowledgebase",
"permission": { "permission": 2, "type": null, "element": null },
"parent": 1005901001,
"children": []
}
]
}

View File

@ -14,9 +14,11 @@ declare(strict_types=1);
namespace Modules\Knowledgebase\Controller;
use Modules\Knowledgebase\Models\NullWikiApp;
use Modules\Knowledgebase\Models\NullWikiCategory;
use Modules\Knowledgebase\Models\NullWikiDoc;
use Modules\Knowledgebase\Models\PermissionState;
use Modules\Knowledgebase\Models\WikiAppMapper;
use Modules\Knowledgebase\Models\WikiCategoryMapper;
use Modules\Knowledgebase\Models\WikiDocMapper;
@ -79,8 +81,84 @@ final class BackendController extends Controller
$view->setTemplate('/Modules/Knowledgebase/Theme/Backend/wiki-dashboard');
$view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1005901001, $request, $response));
$list = WikiCategoryMapper::getNewest(50);
$view->setData('categories', $list);
$categories = WikiCategoryMapper::getNewest(50);
$view->setData('categories', $categories);
$documents = WikiDocMapper::getNewest(50);
$view->setData('docs', $documents);
return $view;
}
/**
* Routing end-point for application behaviour.
*
* @param RequestAbstract $request Request
* @param ResponseAbstract $response Response
* @param mixed $data Generic data
*
* @return RenderableInterface
*
* @since 1.0.0
* @codeCoverageIgnore
*/
public function viewKnowledgebaseAppList(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface
{
$view = new View($this->app->l11nManager, $request, $response);
$view->setTemplate('/Modules/Knowledgebase/Theme/Backend/wiki-app-list');
$view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1005901001, $request, $response));
$list = WikiAppMapper::getAll();
$view->setData('apps', $list);
return $view;
}
/**
* Routing end-point for application behaviour.
*
* @param RequestAbstract $request Request
* @param ResponseAbstract $response Response
* @param mixed $data Generic data
*
* @return RenderableInterface
*
* @since 1.0.0
* @codeCoverageIgnore
*/
public function viewKnowledgebaseApp(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface
{
$view = new View($this->app->l11nManager, $request, $response);
$view->setTemplate('/Modules/Knowledgebase/Theme/Backend/wiki-app-single');
$view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1005901001, $request, $response));
$app = WikiAppMapper::get((int) $request->getData('id'));
$view->setData('app', $app);
return $view;
}
/**
* Routing end-point for application behaviour.
*
* @param RequestAbstract $request Request
* @param ResponseAbstract $response Response
* @param mixed $data Generic data
*
* @return RenderableInterface
*
* @since 1.0.0
* @codeCoverageIgnore
*/
public function viewKnowledgebaseAppCreate(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface
{
$view = new View($this->app->l11nManager, $request, $response);
$view->setTemplate('/Modules/Knowledgebase/Theme/Backend/wiki-app-single');
$view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1005901001, $request, $response));
$view->setData('app', new NullWikiApp());
return $view;
}
@ -110,31 +188,6 @@ final class BackendController extends Controller
return $view;
}
/**
* Routing end-point for application behaviour.
*
* @param RequestAbstract $request Request
* @param ResponseAbstract $response Response
* @param mixed $data Generic data
*
* @return RenderableInterface
*
* @since 1.0.0
* @codeCoverageIgnore
*/
public function viewKnowledgebaseDocList(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface
{
$view = new View($this->app->l11nManager, $request, $response);
$view->setTemplate('/Modules/Knowledgebase/Theme/Backend/wiki-doc-list');
$view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1005901001, $request, $response));
$list = WikiDocMapper::getAll();
$view->setData('docs', $list);
return $view;
}
/**
* Routing end-point for application behaviour.
*
@ -183,6 +236,31 @@ final class BackendController extends Controller
return $view;
}
/**
* Routing end-point for application behaviour.
*
* @param RequestAbstract $request Request
* @param ResponseAbstract $response Response
* @param mixed $data Generic data
*
* @return RenderableInterface
*
* @since 1.0.0
* @codeCoverageIgnore
*/
public function viewKnowledgebaseDocList(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface
{
$view = new View($this->app->l11nManager, $request, $response);
$view->setTemplate('/Modules/Knowledgebase/Theme/Backend/wiki-doc-list');
$view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1005901001, $request, $response));
$list = WikiDocMapper::getAll();
$view->setData('docs', $list);
return $view;
}
/**
* Routing end-point for application behaviour.
*

View File

@ -13,5 +13,7 @@
declare(strict_types=1);
return ['Navigation' => [
'Wiki' => 'Wiki',
'Wiki' => 'Wiki',
'Categories' => 'Categories',
'Apps' => 'Apps',
]];

View File

@ -0,0 +1,21 @@
<?php
/**
* Orange Management
*
* PHP Version 7.4
*
* @package Modules\Knowledgebase
* @copyright Dennis Eichhorn
* @license OMS License 1.0
* @version 1.0.0
* @link https://orange-management.org
*/
declare(strict_types=1);
$app = $this->getData('app');
/**
* @var \phpOMS\Views\View $this
*/
echo $this->getData('nav')->render();
?>

View File

@ -0,0 +1,21 @@
<?php
/**
* Orange Management
*
* PHP Version 7.4
*
* @package Modules\Knowledgebase
* @copyright Dennis Eichhorn
* @license OMS License 1.0
* @version 1.0.0
* @link https://orange-management.org
*/
declare(strict_types=1);
$apps = $this->getData('apps');
/**
* @var \phpOMS\Views\View $this
*/
echo $this->getData('nav')->render();
?>

View File

@ -0,0 +1,21 @@
<?php
/**
* Orange Management
*
* PHP Version 7.4
*
* @package Modules\Knowledgebase
* @copyright Dennis Eichhorn
* @license OMS License 1.0
* @version 1.0.0
* @link https://orange-management.org
*/
declare(strict_types=1);
$app = $this->getData('app');
/**
* @var \phpOMS\Views\View $this
*/
echo $this->getData('nav')->render();
?>

View File

@ -1,15 +1,54 @@
<?php declare(strict_types=1);
$categories = $this->getData('categories');
<?php
/**
* Orange Management
*
* PHP Version 7.4
*
* @package Modules\Knowledgebase
* @copyright Dennis Eichhorn
* @license OMS License 1.0
* @version 1.0.0
* @link https://orange-management.org
*/
declare(strict_types=1);
use \phpOMS\Uri\UriFactory;
/**
* @var \Modules\Knowledgebase\Models\WikiCategory[] $categories
* @var \Modules\Knowledgebase\Models\WikiDoc[] $documents
*/
$categories = $this->getData('categories') ?? [];
$documents = $this->getData('docs') ?? [];
/**
* @var \phpOMS\Views\View $this
*/
echo $this->getData('nav')->render(); ?>
<div class="row">
<div class="col-xs-12">
<?php foreach ($categories as $category) : ?>
<section class="box wf-100 wiki-list">
<div class="col-xs-12 col-md-8 col-lg-9">
<div class="row">
<?php foreach ($documents as $doc) : ?>
<section class="box wf-100">
<header><h1><?= $doc->getName(); ?></h1></header>
<article>
<?= $doc->getDoc(); ?>
</article>
</section>
<?php endforeach; ?>
</div>
</div>
<div class="col-xs-12 col-md-4 col-lg-3">
<section class="box wf-100">
<div class="inner">
<a href="<?= \phpOMS\Uri\UriFactory::build('{/prefix}wiki/doc/list?{?}&id=' . $category->getId()); ?>"><?= $this->printHtml($category->getName()); ?></a>
<ul>
<?php foreach ($categories as $category) : ?>
<li><a href="<?= UriFactory::build('{/prefix}wiki/doc/list?{?}&id=' . $category->getId()); ?>"><?= $this->printHtml($category->getName()); ?></a>
<?php endforeach; ?>
</ul>
</div>
</section>
<?php endforeach; ?>
</div>
</div>
</div>