mirror of
https://github.com/Karaka-Management/oms-Knowledgebase.git
synced 2026-01-11 09:28:40 +00:00
update
This commit is contained in:
parent
42c553240c
commit
c213aca9f7
|
|
@ -34,7 +34,7 @@
|
|||
"type": 3,
|
||||
"subtype": 1,
|
||||
"name": "Categories",
|
||||
"uri": "{/base}/wiki/category/list",
|
||||
"uri": "{/base}/wiki/category/list?{?}",
|
||||
"target": "self",
|
||||
"icon": null,
|
||||
"order": 5,
|
||||
|
|
@ -52,7 +52,7 @@
|
|||
"uri": "{/base}/wiki/doc/create?{?}",
|
||||
"target": "self",
|
||||
"icon": null,
|
||||
"order": 10,
|
||||
"order": 15,
|
||||
"from": "Knowledgebase",
|
||||
"permission": { "permission": 4, "category": null, "element": null },
|
||||
"parent": 1005901001,
|
||||
|
|
@ -64,12 +64,27 @@
|
|||
"type": 3,
|
||||
"subtype": 1,
|
||||
"name": "List",
|
||||
"uri": "{/base}/wiki/list",
|
||||
"uri": "{/base}/wiki/doc/list?{?}",
|
||||
"target": "self",
|
||||
"icon": null,
|
||||
"order": 15,
|
||||
"order": 10,
|
||||
"from": "Knowledgebase",
|
||||
"permission": { "permission": 2, "category": null, "element": null },
|
||||
"permission": { "permission": 4, "category": null, "element": null },
|
||||
"parent": 1005901001,
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"id": 1005906001,
|
||||
"pid": "/wiki",
|
||||
"type": 3,
|
||||
"subtype": 1,
|
||||
"name": "Apps",
|
||||
"uri": "{/base}/wiki/app/list?{?}",
|
||||
"target": "self",
|
||||
"icon": null,
|
||||
"order": 20,
|
||||
"from": "Knowledgebase",
|
||||
"permission": { "permission": 4, "category": null, "element": null },
|
||||
"parent": 1005901001,
|
||||
"children": []
|
||||
}
|
||||
|
|
|
|||
|
|
@ -134,4 +134,25 @@ return [
|
|||
],
|
||||
],
|
||||
],
|
||||
|
||||
'^.*/wiki/category/l11n$' => [
|
||||
[
|
||||
'dest' => '\Modules\Knowledgebase\Controller\ApiController:apiWikiCategoryL11nCreate',
|
||||
'verb' => RouteVerb::PUT,
|
||||
'permission' => [
|
||||
'module' => ApiController::NAME,
|
||||
'type' => PermissionType::READ,
|
||||
'state' => PermissionCategory::CATEGORY,
|
||||
],
|
||||
],
|
||||
[
|
||||
'dest' => '\Modules\Knowledgebase\Controller\ApiController:apiWikiCategoryL11nUpdate',
|
||||
'verb' => RouteVerb::SET,
|
||||
'permission' => [
|
||||
'module' => ApiController::NAME,
|
||||
'type' => PermissionType::READ,
|
||||
'state' => PermissionCategory::CATEGORY,
|
||||
],
|
||||
],
|
||||
],
|
||||
];
|
||||
|
|
|
|||
|
|
@ -40,6 +40,7 @@ return [
|
|||
],
|
||||
],
|
||||
],
|
||||
|
||||
'^.*/wiki/category/list.*$' => [
|
||||
[
|
||||
'dest' => '\Modules\Knowledgebase\Controller\BackendController:viewKnowledgebaseCategoryList',
|
||||
|
|
@ -73,6 +74,7 @@ return [
|
|||
],
|
||||
],
|
||||
],
|
||||
|
||||
'^.*/wiki/doc/single.*$' => [
|
||||
[
|
||||
'dest' => '\Modules\Knowledgebase\Controller\BackendController:viewKnowledgebaseDoc',
|
||||
|
|
@ -117,4 +119,38 @@ return [
|
|||
],
|
||||
],
|
||||
],
|
||||
|
||||
'^.*/wiki/app/list.*$' => [
|
||||
[
|
||||
'dest' => '\Modules\Knowledgebase\Controller\BackendController:viewKnowledgebaseAppList',
|
||||
'verb' => RouteVerb::GET,
|
||||
'permission' => [
|
||||
'module' => BackendController::NAME,
|
||||
'type' => PermissionType::READ,
|
||||
'state' => PermissionCategory::CATEGORY,
|
||||
],
|
||||
],
|
||||
],
|
||||
'^.*/wiki/app/single.*$' => [
|
||||
[
|
||||
'dest' => '\Modules\Knowledgebase\Controller\BackendController:viewKnowledgebaseApp',
|
||||
'verb' => RouteVerb::GET,
|
||||
'permission' => [
|
||||
'module' => BackendController::NAME,
|
||||
'type' => PermissionType::READ,
|
||||
'state' => PermissionCategory::CATEGORY,
|
||||
],
|
||||
],
|
||||
],
|
||||
'^.*/wiki/app/create.*$' => [
|
||||
[
|
||||
'dest' => '\Modules\Knowledgebase\Controller\BackendController:viewKnowledgebaseAppCreate',
|
||||
'verb' => RouteVerb::GET,
|
||||
'permission' => [
|
||||
'module' => BackendController::NAME,
|
||||
'type' => PermissionType::CREATE,
|
||||
'state' => PermissionCategory::CATEGORY,
|
||||
],
|
||||
],
|
||||
],
|
||||
];
|
||||
|
|
|
|||
|
|
@ -257,7 +257,7 @@ final class ApiController extends Controller
|
|||
$request->setData('language', $tag['language'], true);
|
||||
|
||||
$internalResponse = new HttpResponse();
|
||||
$this->app->moduleManager->get('Tag')->apiTagCreate($request, $internalResponse);
|
||||
$this->app->moduleManager->get('Tag')->apiWikiCategoryL11nCreate($request, $internalResponse);
|
||||
|
||||
if (!\is_array($data = $internalResponse->getDataArray($request->uri->__toString()))) {
|
||||
continue;
|
||||
|
|
@ -779,4 +779,126 @@ final class ApiController extends Controller
|
|||
$this->deleteModel($request->header->account, $app, WikiAppMapper::class, 'app', $request->getOrigin());
|
||||
$this->createStandardDeleteResponse($request, $response, $app);
|
||||
}
|
||||
|
||||
/**
|
||||
* Api method to update CategoryL11n
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
* @param array $data Generic data
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @api
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function apiWikiCategoryL11nUpdate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void
|
||||
{
|
||||
if (!empty($val = $this->validateCategoryL11nUpdate($request))) {
|
||||
$response->header->status = RequestStatusCode::R_400;
|
||||
$this->createInvalidUpdateResponse($request, $response, $val);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
/** @var BaseStringL11n $old */
|
||||
$old = WikiCategoryL11nMapper::get()->where('id', (int) $request->getData('id'))->execute();
|
||||
$new = $this->updateCategoryL11nFromRequest($request, clone $old);
|
||||
|
||||
$this->updateModel($request->header->account, $old, $new, WikiCategoryL11nMapper::class, 'category_l11n', $request->getOrigin());
|
||||
$this->createStandardUpdateResponse($request, $response, $new);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to update CategoryL11n from request.
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
* @param BaseStringL11n $new Model to modify
|
||||
*
|
||||
* @return BaseStringL11n
|
||||
*
|
||||
* @todo Implement API update function
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function updateCategoryL11nFromRequest(RequestAbstract $request, BaseStringL11n $new) : BaseStringL11n
|
||||
{
|
||||
$new->setLanguage(
|
||||
$request->getDataString('language') ?? $new->language
|
||||
);
|
||||
$new->content = $request->getDataString('title') ?? $new->content;
|
||||
|
||||
return $new;
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate CategoryL11n update request
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
*
|
||||
* @return array<string, bool>
|
||||
*
|
||||
* @todo Implement API validation function
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private function validateCategoryL11nUpdate(RequestAbstract $request) : array
|
||||
{
|
||||
$val = [];
|
||||
if (($val['id'] = !$request->hasData('id'))) {
|
||||
return $val;
|
||||
}
|
||||
|
||||
return [];
|
||||
}
|
||||
|
||||
/**
|
||||
* Api method to delete CategoryL11n
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
* @param array $data Generic data
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @api
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function apiWikiCategoryL11nDelete(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void
|
||||
{
|
||||
if (!empty($val = $this->validateCategoryL11nDelete($request))) {
|
||||
$response->header->status = RequestStatusCode::R_400;
|
||||
$this->createInvalidDeleteResponse($request, $response, $val);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
/** @var BaseStringL11n $categoryL11n */
|
||||
$categoryL11n = WikiCategoryL11nMapper::get()->where('id', (int) $request->getData('id'))->execute();
|
||||
$this->deleteModel($request->header->account, $categoryL11n, WikiCategoryL11nMapper::class, 'category_l11n', $request->getOrigin());
|
||||
$this->createStandardDeleteResponse($request, $response, $categoryL11n);
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate CategoryL11n delete request
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
*
|
||||
* @return array<string, bool>
|
||||
*
|
||||
* @todo Implement API validation function
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private function validateCategoryL11nDelete(RequestAbstract $request) : array
|
||||
{
|
||||
$val = [];
|
||||
if (($val['id'] = !$request->hasData('id'))) {
|
||||
return $val;
|
||||
}
|
||||
|
||||
return [];
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ use Modules\Knowledgebase\Models\NullWikiCategory;
|
|||
use Modules\Knowledgebase\Models\NullWikiDoc;
|
||||
use Modules\Knowledgebase\Models\PermissionCategory;
|
||||
use Modules\Knowledgebase\Models\WikiAppMapper;
|
||||
use Modules\Knowledgebase\Models\WikiCategoryL11nMapper;
|
||||
use Modules\Knowledgebase\Models\WikiCategoryMapper;
|
||||
use Modules\Knowledgebase\Models\WikiDocMapper;
|
||||
use phpOMS\Account\PermissionType;
|
||||
|
|
@ -42,7 +43,7 @@ use phpOMS\Views\View;
|
|||
final class BackendController extends Controller
|
||||
{
|
||||
/**
|
||||
* Routing end-point for application behaviour.
|
||||
* Routing end-point for application behavior.
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
|
|
@ -60,7 +61,7 @@ final class BackendController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Routing end-point for application behaviour.
|
||||
* Routing end-point for application behavior.
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
|
|
@ -75,8 +76,10 @@ final class BackendController extends Controller
|
|||
{
|
||||
$view = new View($this->app->l11nManager, $request, $response);
|
||||
|
||||
// @todo assign default org app to wiki app and default flag, load the wiki app based on org id and with a default flag set. Use this app in the following line instead of the hardcoded "1"
|
||||
$app = $request->getDataInt('app') ?? 1;
|
||||
// @todo assign default org app to wiki app and default flag,
|
||||
// load the wiki app based on org id and with a default flag set.
|
||||
// Use this app in the following line instead of the hardcoded "1"
|
||||
$app = $request->getDataInt('wiki') ?? 1;
|
||||
|
||||
$view->setTemplate('/Modules/Knowledgebase/Theme/Backend/wiki-dashboard');
|
||||
$view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1005901001, $request, $response);
|
||||
|
|
@ -84,7 +87,7 @@ final class BackendController extends Controller
|
|||
/** @var \Modules\Knowledgebase\Models\WikiCategory[] $categories */
|
||||
$categories = WikiCategoryMapper::getAll()
|
||||
->with('name')
|
||||
->where('parent', $request->getDataInt('category'))
|
||||
->where('parent', null)
|
||||
->where('app', $app)
|
||||
->where('name/language', $response->header->l11n->language)
|
||||
->execute();
|
||||
|
|
@ -98,7 +101,8 @@ final class BackendController extends Controller
|
|||
->where('app', $app)
|
||||
->where('language', $response->header->l11n->language)
|
||||
->where('tags/title/language', $response->header->l11n->language)
|
||||
->limit(25)->sort('createdAt', OrderType::DESC)
|
||||
->limit(25)
|
||||
->sort('createdAt', OrderType::DESC)
|
||||
->execute();
|
||||
|
||||
$view->data['docs'] = $documents;
|
||||
|
|
@ -111,7 +115,7 @@ final class BackendController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Routing end-point for application behaviour.
|
||||
* Routing end-point for application behavior.
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
|
|
@ -137,7 +141,7 @@ final class BackendController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Routing end-point for application behaviour.
|
||||
* Routing end-point for application behavior.
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
|
|
@ -163,7 +167,7 @@ final class BackendController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Routing end-point for application behaviour.
|
||||
* Routing end-point for application behavior.
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
|
|
@ -186,7 +190,7 @@ final class BackendController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Routing end-point for application behaviour.
|
||||
* Routing end-point for application behavior.
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
|
|
@ -201,20 +205,26 @@ final class BackendController extends Controller
|
|||
{
|
||||
$view = new View($this->app->l11nManager, $request, $response);
|
||||
|
||||
$app = $request->getDataInt('app') ?? $this->app->unitId;
|
||||
|
||||
$view->setTemplate('/Modules/Knowledgebase/Theme/Backend/wiki-category-list');
|
||||
$view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1005901001, $request, $response);
|
||||
|
||||
/** @var \Modules\Knowledgebase\Models\WikiCategory[] $list */
|
||||
$list = WikiCategoryMapper::getAll()->with('name')->where('app', $app)->where('name/language', $response->header->l11n->language)->execute();
|
||||
$list = WikiCategoryMapper::getAll()
|
||||
->with('name')
|
||||
->where('name/language', $response->header->l11n->language)
|
||||
->execute();
|
||||
|
||||
$view->data['categories'] = $list;
|
||||
|
||||
/** @var \Modules\Knowledgebase\Models\WikiApp[] $apps */
|
||||
$apps = WikiAppMapper::getAll()->execute();
|
||||
$view->data['apps'] = $apps;
|
||||
|
||||
return $view;
|
||||
}
|
||||
|
||||
/**
|
||||
* Routing end-point for application behaviour.
|
||||
* Routing end-point for application behavior.
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
|
|
@ -233,14 +243,28 @@ final class BackendController extends Controller
|
|||
$view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1005901001, $request, $response);
|
||||
|
||||
/** @var \Modules\Knowledgebase\Models\WikiCategory $category */
|
||||
$category = WikiCategoryMapper::get()->where('id', (int) $request->getData('id'))->execute();
|
||||
$category = WikiCategoryMapper::get()
|
||||
->with('name')
|
||||
->where('id', (int) $request->getData('id'))
|
||||
->where('name/language', $response->header->l11n->language)
|
||||
->execute();
|
||||
|
||||
$view->data['category'] = $category;
|
||||
|
||||
$view->data['l11nView'] = new \Web\Backend\Views\L11nView($this->app->l11nManager, $request, $response);
|
||||
|
||||
/** @var \phpOMS\Localization\BaseStringL11n[] $l11nValues */
|
||||
$l11nValues = WikiCategoryL11nMapper::getAll()
|
||||
->where('ref', $category->id)
|
||||
->execute();
|
||||
|
||||
$view->data['l11nValues'] = $l11nValues;
|
||||
|
||||
return $view;
|
||||
}
|
||||
|
||||
/**
|
||||
* Routing end-point for application behaviour.
|
||||
* Routing end-point for application behavior.
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
|
|
@ -254,7 +278,7 @@ 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-single');
|
||||
$view->setTemplate('/Modules/Knowledgebase/Theme/Backend/wiki-category-create');
|
||||
$view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1005901001, $request, $response);
|
||||
|
||||
$view->data['category'] = new NullWikiCategory();
|
||||
|
|
@ -263,7 +287,7 @@ final class BackendController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Routing end-point for application behaviour.
|
||||
* Routing end-point for application behavior.
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
|
|
@ -276,20 +300,44 @@ final class BackendController extends Controller
|
|||
*/
|
||||
public function viewKnowledgebaseDocList(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface
|
||||
{
|
||||
$app = $request->getDataInt('wiki') ?? 1;
|
||||
|
||||
$view = new View($this->app->l11nManager, $request, $response);
|
||||
|
||||
$view->setTemplate('/Modules/Knowledgebase/Theme/Backend/wiki-doc-list');
|
||||
$view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1005901001, $request, $response);
|
||||
|
||||
/** @var \Modules\Knowledgebase\Models\WikiDoc[] $list */
|
||||
$list = WikiDocMapper::getAll()->limit(25)->execute();
|
||||
$view->data['docs'] = $list;
|
||||
/** @var \Modules\Knowledgebase\Models\WikiCategory[] $categories */
|
||||
$categories = WikiCategoryMapper::getAll()
|
||||
->with('name')
|
||||
->where('app', $app)
|
||||
->where('name/language', $response->header->l11n->language)
|
||||
->execute();
|
||||
|
||||
$view->data['categories'] = $categories;
|
||||
|
||||
/** @var \Modules\Knowledgebase\Models\WikiDoc[] $documents */
|
||||
$documents = WikiDocMapper::getAll()
|
||||
->with('tags')
|
||||
->with('tags/title')
|
||||
->where('app', $app)
|
||||
->where('category', $request->getDataInt('category') ?? \reset($categories)->id)
|
||||
->where('language', $response->header->l11n->language)
|
||||
->where('tags/title/language', $response->header->l11n->language)
|
||||
->sort('createdAt', OrderType::DESC)
|
||||
->execute();
|
||||
|
||||
$view->data['docs'] = $documents;
|
||||
|
||||
/** @var \Modules\Knowledgebase\Models\WikiApp[] $apps */
|
||||
$apps = WikiAppMapper::getAll()->execute();
|
||||
$view->data['apps'] = $apps;
|
||||
|
||||
return $view;
|
||||
}
|
||||
|
||||
/**
|
||||
* Routing end-point for application behaviour.
|
||||
* Routing end-point for application behavior.
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
|
|
@ -304,7 +352,7 @@ final class BackendController extends Controller
|
|||
{
|
||||
$view = new View($this->app->l11nManager, $request, $response);
|
||||
|
||||
$app = $request->getDataInt('app') ?? $this->app->unitId;
|
||||
$app = $request->getDataInt('wiki') ?? $this->app->unitId;
|
||||
|
||||
/** @var \Modules\Knowledgebase\Models\WikiDoc $document */
|
||||
$document = WikiDocMapper::get()
|
||||
|
|
@ -353,7 +401,7 @@ final class BackendController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Routing end-point for application behaviour.
|
||||
* Routing end-point for application behavior.
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
|
|
@ -383,7 +431,7 @@ final class BackendController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Routing end-point for application behaviour.
|
||||
* Routing end-point for application behavior.
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
|
|
@ -399,7 +447,7 @@ final class BackendController extends Controller
|
|||
$view = new View($this->app->l11nManager, $request, $response);
|
||||
|
||||
$view->setTemplate('/Modules/Knowledgebase/Theme/Backend/wiki-doc-create');
|
||||
$view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1000601001, $request, $response);
|
||||
$view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1005901001, $request, $response);
|
||||
|
||||
$editor = new \Modules\Editor\Theme\Backend\Components\Editor\BaseView($this->app->l11nManager, $request, $response);
|
||||
$view->data['editor'] = $editor;
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ namespace Modules\Knowledgebase\Models;
|
|||
use phpOMS\Stdlib\Base\Enum;
|
||||
|
||||
/**
|
||||
* Permision state enum.
|
||||
* Permission category enum.
|
||||
*
|
||||
* @package Modules\Knowledgebase\Models
|
||||
* @license OMS License 2.0
|
||||
|
|
|
|||
|
|
@ -70,7 +70,7 @@ class WikiCategory implements \JsonSerializable
|
|||
public string $virtualPath = '/';
|
||||
|
||||
/**
|
||||
* Cosntructor
|
||||
* Constructor
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -21,22 +21,33 @@ $categories = $this->data['categories'] ?? [];
|
|||
echo $this->data['nav']->render();
|
||||
?>
|
||||
|
||||
<div class="row">
|
||||
<div class="box">
|
||||
<a class="button end-xs save" href="<?= UriFactory::build('{/base}/wiki/category/create'); ?>"><?= $this->getHtml('New', '0', '0'); ?></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<div class="portlet">
|
||||
<div class="portlet-head"><?= $this->getHtml('Categories'); ?><i class="g-icon download btn end-xs">download</i></div>
|
||||
<div class="portlet-head">
|
||||
<?= $this->getHtml('Categories'); ?>
|
||||
<i class="g-icon download btn end-xs">download</i>
|
||||
</div>
|
||||
<div class="slider">
|
||||
<table class="default sticky">
|
||||
<thead>
|
||||
<tr>
|
||||
<td><?= $this->getHtml('ID', '0', '0'); ?>
|
||||
<td><?= $this->getHtml('App'); ?>
|
||||
<td class="wf-100"><?= $this->getHtml('Name'); ?>
|
||||
<td><?= $this->getHtml('Parent'); ?>
|
||||
<tbody>
|
||||
<?php foreach ($categories as $key => $value) :
|
||||
$url = UriFactory::build('{/base}/admin/account/settings?{?}&id=' . $value->id); ?>
|
||||
$url = UriFactory::build('{/base}/wiki/category/single?id=' . $value->id); ?>
|
||||
<tr tabindex="0" data-href="<?= $url; ?>">
|
||||
<td data-label="<?= $this->getHtml('ID', '0', '0'); ?>"><a href="<?= $url; ?>"><?= $value->id; ?></a>
|
||||
<td data-label="<?= $this->getHtml('App'); ?>"><a href="<?= $url; ?>"><?= $this->printHtml($this->data['apps'][$value->app->id]->name); ?></a>
|
||||
<td data-label="<?= $this->getHtml('Name'); ?>"><a href="<?= $url; ?>"><?= $this->printHtml($value->getL11n()); ?></a>
|
||||
<td data-label="<?= $this->getHtml('Parent'); ?>"><a href="<?= $url; ?>"><?= $this->printHtml($value->parent !== null ? $value->parent->getL11n() : ''); ?></a>
|
||||
<?php endforeach; ?>
|
||||
|
|
@ -45,7 +56,6 @@ echo $this->data['nav']->render();
|
|||
<?php endif; ?>
|
||||
</table>
|
||||
</div>
|
||||
<div class="portlet-foot"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -1,14 +1,29 @@
|
|||
<?php
|
||||
/**
|
||||
* @var \phpOMS\Views\View $this
|
||||
* Jingga
|
||||
*
|
||||
* PHP Version 8.1
|
||||
*
|
||||
* @package Modules\Knowledgebase
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 2.0
|
||||
* @version 1.0.0
|
||||
* @link https://jingga.app
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
echo $this->data['nav']->render();
|
||||
?>
|
||||
use phpOMS\Uri\UriFactory;
|
||||
|
||||
/** @var \Modules\Knowledgebase\Models\WikiCategory */
|
||||
$category = $this->data['category'];
|
||||
|
||||
/** @var \phpOMS\Views\View $this */
|
||||
echo $this->data['nav']->render(); ?>
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
|
||||
</div>
|
||||
<?= $this->data['l11nView']->render(
|
||||
$this->data['l11nValues'],
|
||||
[],
|
||||
'{/api}wiki/category/l11n'
|
||||
);
|
||||
?>
|
||||
</div>
|
||||
|
|
@ -58,9 +58,9 @@ echo $this->data['nav']->render(); ?>
|
|||
<div class="portlet-head"><?= $this->getHtml('App'); ?></div>
|
||||
<div class="portlet-body">
|
||||
<form>
|
||||
<select name="app">
|
||||
<select id="iApp" name="app" data-action='[{"listener": "change", "action": [{"key": 1, "type": "redirect", "uri": "{%}&wiki={#iApp}", "target": "self"}]}]'>
|
||||
<?php foreach ($apps as $app) : ?>
|
||||
<option><?= $this->printHtml($app->name); ?>
|
||||
<option value="<?= $app->id; ?>"<?= $this->request->getDataInt('wiki') === $app->id ? ' selected' : ''; ?>><?= $this->printHtml($app->name); ?>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
</form>
|
||||
|
|
@ -72,7 +72,7 @@ echo $this->data['nav']->render(); ?>
|
|||
<div class="portlet-body">
|
||||
<ul>
|
||||
<?php foreach ($categories as $category) : ?>
|
||||
<li><a href="<?= UriFactory::build('{/base}/wiki/doc/list?{?}&id=' . $category->id); ?>"><?= $this->printHtml($category->getL11n()); ?></a>
|
||||
<li><a href="<?= UriFactory::build('{/base}/wiki/doc/list?{?}&category=' . $category->id); ?>"><?= $this->printHtml($category->getL11n()); ?></a>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
</div>
|
||||
|
|
|
|||
84
Theme/Backend/wiki-doc-list.tpl.php
Normal file
84
Theme/Backend/wiki-doc-list.tpl.php
Normal file
|
|
@ -0,0 +1,84 @@
|
|||
<?php
|
||||
/**
|
||||
* Jingga
|
||||
*
|
||||
* PHP Version 8.1
|
||||
*
|
||||
* @package Modules\Knowledgebase
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 2.0
|
||||
* @version 1.0.0
|
||||
* @link https://jingga.app
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
use \phpOMS\Uri\UriFactory;
|
||||
use phpOMS\Utils\Parser\Markdown\Markdown;
|
||||
|
||||
/** @var \phpOMS\Views\View $this */
|
||||
/** @var \Modules\Knowledgebase\Models\WikiCategory[] $categories */
|
||||
$categories = $this->data['categories'] ?? [];
|
||||
|
||||
/** @var \Modules\Knowledgebase\Models\WikiDoc[] $documents */
|
||||
$documents = $this->data['docs'] ?? [];
|
||||
|
||||
/** @var \Modules\Knowledgebase\Models\WikiApp[] $apps */
|
||||
$apps = $this->data['apps'] ?? [];
|
||||
|
||||
echo $this->data['nav']->render(); ?>
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-md-8 col-lg-9">
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<div class="portlet">
|
||||
<div class="portlet-head">
|
||||
<?= $this->getHtml('Docs'); ?>
|
||||
<i class="g-icon download btn end-xs">download</i>
|
||||
</div>
|
||||
<div class="slider">
|
||||
<table class="default sticky">
|
||||
<thead>
|
||||
<tr>
|
||||
<td class="wf-100"><?= $this->getHtml('Name'); ?>
|
||||
<tbody>
|
||||
<?php foreach ($documents as $key => $value) :
|
||||
$url = UriFactory::build('{/base}/wiki/doc/single?id=' . $value->id); ?>
|
||||
<tr tabindex="0" data-href="<?= $url; ?>">
|
||||
<td data-label="<?= $this->getHtml('Name'); ?>"><a href="<?= $url; ?>"><?= $this->printHtml($value->name); ?></a>
|
||||
<?php endforeach; ?>
|
||||
<?php if (empty($documents)) : ?>
|
||||
<tr><td colspan="1" class="empty"><?= $this->getHtml('Empty', '0', '0'); ?>
|
||||
<?php endif; ?>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-xs-12 col-md-4 col-lg-3">
|
||||
<section class="portlet">
|
||||
<div class="portlet-head"><?= $this->getHtml('App'); ?></div>
|
||||
<div class="portlet-body">
|
||||
<form>
|
||||
<select id="iApp" name="app" data-action='[{"listener": "change", "action": [{"key": 1, "type": "redirect", "uri": "{%}&wiki={#iApp}", "target": "self"}]}]'>
|
||||
<?php foreach ($apps as $app) : ?>
|
||||
<option value="<?= $app->id; ?>"<?= $this->request->getDataInt('wiki') === $app->id ? ' selected' : ''; ?>><?= $this->printHtml($app->name); ?>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
</form>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="portlet">
|
||||
<div class="portlet-head"><?= $this->getHtml('Categories'); ?></div>
|
||||
<div class="portlet-body">
|
||||
<ul>
|
||||
<?php foreach ($categories as $category) : ?>
|
||||
<li><a href="<?= UriFactory::build('{/base}/wiki/doc/list?{?}&category=' . $category->id); ?>"><?= $this->printHtml($category->getL11n()); ?></a>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
Loading…
Reference in New Issue
Block a user