bug fixes

This commit is contained in:
Dennis Eichhorn 2024-10-11 19:17:39 +00:00
parent 8a004be661
commit 8f0ff77cc9
5 changed files with 130 additions and 22 deletions

View File

@ -94,7 +94,7 @@ final class Installer extends InstallerAbstract
$request->header->account = 1; $request->header->account = 1;
$request->setData('duration', $type['duration']); $request->setData('duration', $type['duration']);
$request->setData('industry', $type['industry']); $request->setData('industry', $type['industry']);
$request->setData('title', \reset($type['l11n'])); $request->setData('content', \reset($type['l11n']));
$request->setData('language', \array_keys($type['l11n'])[0] ?? 'en'); $request->setData('language', \array_keys($type['l11n'])[0] ?? 'en');
$module->apiAssetTypeCreate($request, $response); $module->apiAssetTypeCreate($request, $response);
@ -121,9 +121,9 @@ final class Installer extends InstallerAbstract
$request = new HttpRequest(); $request = new HttpRequest();
$request->header->account = 1; $request->header->account = 1;
$request->setData('title', $l11n); $request->setData('content', $l11n);
$request->setData('language', $language); $request->setData('language', $language);
$request->setData('type', $assetType['id']); $request->setData('ref', $assetType['id']);
$module->apiAssetTypeL11nCreate($request, $response); $module->apiAssetTypeL11nCreate($request, $response);
} }
@ -157,7 +157,7 @@ final class Installer extends InstallerAbstract
$request->header->account = 1; $request->header->account = 1;
$request->setData('name', $attribute['name'] ?? ''); $request->setData('name', $attribute['name'] ?? '');
$request->setData('title', \reset($attribute['l11n'])); $request->setData('content', \reset($attribute['l11n']));
$request->setData('language', \array_keys($attribute['l11n'])[0] ?? 'en'); $request->setData('language', \array_keys($attribute['l11n'])[0] ?? 'en');
$request->setData('is_required', $attribute['is_required'] ?? false); $request->setData('is_required', $attribute['is_required'] ?? false);
$request->setData('repeatable', $attribute['repeatable'] ?? false); $request->setData('repeatable', $attribute['repeatable'] ?? false);
@ -188,9 +188,9 @@ final class Installer extends InstallerAbstract
$request = new HttpRequest(); $request = new HttpRequest();
$request->header->account = 1; $request->header->account = 1;
$request->setData('title', $l11n); $request->setData('content', $l11n);
$request->setData('language', $language); $request->setData('language', $language);
$request->setData('type', $itemAttrType[$attribute['name']]['id']); $request->setData('ref', $itemAttrType[$attribute['name']]['id']);
$module->apiAssetAttributeTypeL11nCreate($request, $response); $module->apiAssetAttributeTypeL11nCreate($request, $response);
} }
@ -237,7 +237,7 @@ final class Installer extends InstallerAbstract
$request->setData('type', $itemAttrType[$attribute['name']]['id']); $request->setData('type', $itemAttrType[$attribute['name']]['id']);
if (isset($value['l11n']) && !empty($value['l11n'])) { if (isset($value['l11n']) && !empty($value['l11n'])) {
$request->setData('title', \reset($value['l11n'])); $request->setData('content', \reset($value['l11n']));
$request->setData('language', \array_keys($value['l11n'])[0] ?? 'en'); $request->setData('language', \array_keys($value['l11n'])[0] ?? 'en');
} }
@ -265,9 +265,9 @@ final class Installer extends InstallerAbstract
$request = new HttpRequest(); $request = new HttpRequest();
$request->header->account = 1; $request->header->account = 1;
$request->setData('title', $l11n); $request->setData('content', $l11n);
$request->setData('language', $language); $request->setData('language', $language);
$request->setData('value', $attrValue['id']); $request->setData('ref', $attrValue['id']);
$module->apiAssetAttributeValueL11nCreate($request, $response); $module->apiAssetAttributeValueL11nCreate($request, $response);
} }

108
Admin/Routes/Web/Api.php Normal file
View File

@ -0,0 +1,108 @@
<?php
/**
* Jingga
*
* PHP Version 8.2
*
* @package Modules
* @copyright Dennis Eichhorn
* @license OMS License 2.2
* @version 1.0.0
* @link https://jingga.app
*/
declare(strict_types=1);
use Modules\AssetManagement\Controller\ApiController;
use Modules\AssetManagement\Models\PermissionCategory;
use phpOMS\Account\PermissionType;
use phpOMS\Router\RouteVerb;
return [
'^.*/accounting/asset/find(\?.*$|$)' => [
[
'dest' => '\Modules\AssetManagement\Controller\ApiController:apiAssetFind',
'verb' => RouteVerb::GET,
'csrf' => true,
'active' => true,
'permission' => [
'module' => ApiController::NAME,
'type' => PermissionType::READ,
'state' => PermissionCategory::ASSET,
],
],
],
'^.*/accounting/asset(\?.*|$)$' => [
[
'dest' => '\Modules\AssetManagement\Controller\ApiController:apiAssetCreate',
'verb' => RouteVerb::PUT,
'csrf' => true,
'active' => true,
'permission' => [
'module' => ApiController::NAME,
'type' => PermissionType::CREATE,
'state' => PermissionCategory::ASSET,
],
],
[
'dest' => '\Modules\AssetManagement\Controller\ApiController:apiAssetUpdate',
'verb' => RouteVerb::SET,
'csrf' => true,
'active' => true,
'permission' => [
'module' => ApiController::NAME,
'type' => PermissionType::MODIFY,
'state' => PermissionCategory::ASSET,
],
],
],
'^.*/accounting/asset/file(\?.*|$)$' => [
[
'dest' => '\Modules\AssetManagement\Controller\ApiController:apiFileCreate',
'verb' => RouteVerb::PUT,
'csrf' => true,
'active' => true,
'permission' => [
'module' => ApiController::NAME,
'type' => PermissionType::CREATE,
'state' => PermissionCategory::ASSET,
],
],
],
'^.*/accounting/asset/note(\?.*|$)$' => [
[
'dest' => '\Modules\AssetManagement\Controller\ApiController:apiNoteCreate',
'verb' => RouteVerb::PUT,
'csrf' => true,
'active' => true,
'permission' => [
'module' => ApiController::NAME,
'type' => PermissionType::CREATE,
'state' => PermissionCategory::ASSET,
],
],
[
'dest' => '\Modules\AssetManagement\Controller\ApiController:apiNoteUpdate',
'verb' => RouteVerb::SET,
'csrf' => true,
'active' => true,
'permission' => [
'module' => ApiController::NAME,
'type' => PermissionType::MODIFY,
'state' => PermissionCategory::ASSET,
],
],
[
'dest' => '\Modules\AssetManagement\Controller\ApiController:apiNoteDelete',
'verb' => RouteVerb::DELETE,
'csrf' => true,
'active' => true,
'permission' => [
'module' => ApiController::NAME,
'type' => PermissionType::DELETE,
'state' => PermissionCategory::ASSET,
],
],
],
];

View File

@ -75,7 +75,7 @@ final class ApiAssetTypeController extends Controller
{ {
$assetType = new AssetType(); $assetType = new AssetType();
$assetType->setL11n( $assetType->setL11n(
$request->getDataString('title') ?? '', $request->getDataString('content') ?? '',
ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? ISO639x1Enum::_EN ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? ISO639x1Enum::_EN
); );
$assetType->depreciationDuration = $request->getDataInt('duration') ?? 0; $assetType->depreciationDuration = $request->getDataInt('duration') ?? 0;
@ -96,7 +96,7 @@ final class ApiAssetTypeController extends Controller
private function validateAssetTypeCreate(RequestAbstract $request) : array private function validateAssetTypeCreate(RequestAbstract $request) : array
{ {
$val = []; $val = [];
if (($val['title'] = !$request->hasData('title')) if (($val['content'] = !$request->hasData('content'))
) { ) {
return $val; return $val;
} }
@ -143,9 +143,9 @@ final class ApiAssetTypeController extends Controller
private function createAssetTypeL11nFromRequest(RequestAbstract $request) : BaseStringL11n private function createAssetTypeL11nFromRequest(RequestAbstract $request) : BaseStringL11n
{ {
$assetTypeL11n = new BaseStringL11n(); $assetTypeL11n = new BaseStringL11n();
$assetTypeL11n->ref = $request->getDataInt('type') ?? 0; $assetTypeL11n->ref = $request->getDataInt('ref') ?? 0;
$assetTypeL11n->language = ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? $request->header->l11n->language; $assetTypeL11n->language = ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? $request->header->l11n->language;
$assetTypeL11n->content = $request->getDataString('title') ?? ''; $assetTypeL11n->content = $request->getDataString('content') ?? '';
return $assetTypeL11n; return $assetTypeL11n;
} }
@ -162,8 +162,8 @@ final class ApiAssetTypeController extends Controller
private function validateAssetTypeL11nCreate(RequestAbstract $request) : array private function validateAssetTypeL11nCreate(RequestAbstract $request) : array
{ {
$val = []; $val = [];
if (($val['title'] = !$request->hasData('title')) if (($val['content'] = !$request->hasData('content'))
|| ($val['type'] = !$request->hasData('type')) || ($val['ref'] = !$request->hasData('ref'))
) { ) {
return $val; return $val;
} }

View File

@ -181,7 +181,7 @@ final class ApiController extends Controller
} }
/** @var \Modules\AssetManagement\Models\Asset $asset */ /** @var \Modules\AssetManagement\Models\Asset $asset */
$asset = AssetMapper::get()->where('id', (int) $request->getData('asset'))->execute(); $asset = AssetMapper::get()->where('id', (int) $request->getData('ref'))->execute();
$path = $this->createAssetDir($asset); $path = $this->createAssetDir($asset);
$uploaded = new NullCollection(); $uploaded = new NullCollection();
@ -249,7 +249,7 @@ final class ApiController extends Controller
{ {
$val = []; $val = [];
if (($val['media'] = (!$request->hasData('media') && empty($request->files))) if (($val['media'] = (!$request->hasData('media') && empty($request->files)))
|| ($val['asset'] = !$request->hasData('asset')) || ($val['ref'] = !$request->hasData('ref'))
) { ) {
return $val; return $val;
} }
@ -279,7 +279,7 @@ final class ApiController extends Controller
return; return;
} }
$request->setData('virtualpath', '/Modules/AssetManagement/Asset/' . $request->getData('id'), true); $request->setData('virtualpath', '/Modules/AssetManagement/Asset/' . $request->getData('ref'), true);
$this->app->moduleManager->get('Editor', 'Api')->apiEditorCreate($request, $response, $data); $this->app->moduleManager->get('Editor', 'Api')->apiEditorCreate($request, $response, $data);
if ($response->header->status !== RequestStatusCode::R_200) { if ($response->header->status !== RequestStatusCode::R_200) {
@ -292,7 +292,7 @@ final class ApiController extends Controller
} }
$model = $responseData['response']; $model = $responseData['response'];
$this->createModelRelation($request->header->account, (int) $request->getData('id'), $model->id, AssetMapper::class, 'notes', '', $request->getOrigin()); $this->createModelRelation($request->header->account, (int) $request->getData('ref'), $model->id, AssetMapper::class, 'notes', '', $request->getOrigin());
} }
/** /**
@ -307,7 +307,7 @@ final class ApiController extends Controller
private function validateNoteCreate(RequestAbstract $request) : array private function validateNoteCreate(RequestAbstract $request) : array
{ {
$val = []; $val = [];
if (($val['id'] = !$request->hasData('id')) if (($val['ref'] = !$request->hasData('ref'))
) { ) {
return $val; return $val;
} }

View File

@ -133,12 +133,12 @@ echo $this->data['nav']->render();
<input type="radio" id="c-tab-3" name="tabular-2"<?= $this->request->uri->fragment === 'c-tab-3' ? ' checked' : ''; ?>> <input type="radio" id="c-tab-3" name="tabular-2"<?= $this->request->uri->fragment === 'c-tab-3' ? ' checked' : ''; ?>>
<div class="tab col-simple"> <div class="tab col-simple">
<?= $this->data['media-upload']->render('asset-file', 'files', '', $asset->files); ?> <?= $this->data['media-upload']->render('asset-file', 'files', '', $asset->files, '{/api}accounting/asset/file?csrf={$CSRF}', (string) $item->id); ?>
</div> </div>
<input type="radio" id="c-tab-4" name="tabular-2"<?= $this->request->uri->fragment === 'c-tab-4' ? ' checked' : ''; ?>> <input type="radio" id="c-tab-4" name="tabular-2"<?= $this->request->uri->fragment === 'c-tab-4' ? ' checked' : ''; ?>>
<div class="tab"> <div class="tab">
<?= $this->data['asset-notes']->render('asset-notes', '', $asset->notes); ?> <?= $this->data['asset-notes']->render('asset-notes', '', $asset->notes, '{/api}accounting/asset/note?csrf={$CSRF}', (string) $asset->id); ?>
</div> </div>
<input type="radio" id="c-tab-5" name="tabular-2"<?= $this->request->uri->fragment === 'c-tab-5' ? ' checked' : ''; ?>> <input type="radio" id="c-tab-5" name="tabular-2"<?= $this->request->uri->fragment === 'c-tab-5' ? ' checked' : ''; ?>>