From 8f0ff77cc926c2116e4a88a6b9663defd0e1a16d Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Fri, 11 Oct 2024 19:17:39 +0000 Subject: [PATCH] bug fixes --- Admin/Installer.php | 18 ++--- Admin/Routes/Web/Api.php | 108 ++++++++++++++++++++++++++ Controller/ApiAssetTypeController.php | 12 +-- Controller/ApiController.php | 10 +-- Theme/Backend/asset-view.tpl.php | 4 +- 5 files changed, 130 insertions(+), 22 deletions(-) create mode 100644 Admin/Routes/Web/Api.php diff --git a/Admin/Installer.php b/Admin/Installer.php index c9d8489..ebbcda7 100644 --- a/Admin/Installer.php +++ b/Admin/Installer.php @@ -94,7 +94,7 @@ final class Installer extends InstallerAbstract $request->header->account = 1; $request->setData('duration', $type['duration']); $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'); $module->apiAssetTypeCreate($request, $response); @@ -121,9 +121,9 @@ final class Installer extends InstallerAbstract $request = new HttpRequest(); $request->header->account = 1; - $request->setData('title', $l11n); + $request->setData('content', $l11n); $request->setData('language', $language); - $request->setData('type', $assetType['id']); + $request->setData('ref', $assetType['id']); $module->apiAssetTypeL11nCreate($request, $response); } @@ -157,7 +157,7 @@ final class Installer extends InstallerAbstract $request->header->account = 1; $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('is_required', $attribute['is_required'] ?? false); $request->setData('repeatable', $attribute['repeatable'] ?? false); @@ -188,9 +188,9 @@ final class Installer extends InstallerAbstract $request = new HttpRequest(); $request->header->account = 1; - $request->setData('title', $l11n); + $request->setData('content', $l11n); $request->setData('language', $language); - $request->setData('type', $itemAttrType[$attribute['name']]['id']); + $request->setData('ref', $itemAttrType[$attribute['name']]['id']); $module->apiAssetAttributeTypeL11nCreate($request, $response); } @@ -237,7 +237,7 @@ final class Installer extends InstallerAbstract $request->setData('type', $itemAttrType[$attribute['name']]['id']); 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'); } @@ -265,9 +265,9 @@ final class Installer extends InstallerAbstract $request = new HttpRequest(); $request->header->account = 1; - $request->setData('title', $l11n); + $request->setData('content', $l11n); $request->setData('language', $language); - $request->setData('value', $attrValue['id']); + $request->setData('ref', $attrValue['id']); $module->apiAssetAttributeValueL11nCreate($request, $response); } diff --git a/Admin/Routes/Web/Api.php b/Admin/Routes/Web/Api.php new file mode 100644 index 0000000..c25e2df --- /dev/null +++ b/Admin/Routes/Web/Api.php @@ -0,0 +1,108 @@ + [ + [ + '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, + ], + ], + ], +]; \ No newline at end of file diff --git a/Controller/ApiAssetTypeController.php b/Controller/ApiAssetTypeController.php index b93625a..f8a379e 100644 --- a/Controller/ApiAssetTypeController.php +++ b/Controller/ApiAssetTypeController.php @@ -75,7 +75,7 @@ final class ApiAssetTypeController extends Controller { $assetType = new AssetType(); $assetType->setL11n( - $request->getDataString('title') ?? '', + $request->getDataString('content') ?? '', ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? ISO639x1Enum::_EN ); $assetType->depreciationDuration = $request->getDataInt('duration') ?? 0; @@ -96,7 +96,7 @@ final class ApiAssetTypeController extends Controller private function validateAssetTypeCreate(RequestAbstract $request) : array { $val = []; - if (($val['title'] = !$request->hasData('title')) + if (($val['content'] = !$request->hasData('content')) ) { return $val; } @@ -143,9 +143,9 @@ final class ApiAssetTypeController extends Controller private function createAssetTypeL11nFromRequest(RequestAbstract $request) : 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->content = $request->getDataString('title') ?? ''; + $assetTypeL11n->content = $request->getDataString('content') ?? ''; return $assetTypeL11n; } @@ -162,8 +162,8 @@ final class ApiAssetTypeController extends Controller private function validateAssetTypeL11nCreate(RequestAbstract $request) : array { $val = []; - if (($val['title'] = !$request->hasData('title')) - || ($val['type'] = !$request->hasData('type')) + if (($val['content'] = !$request->hasData('content')) + || ($val['ref'] = !$request->hasData('ref')) ) { return $val; } diff --git a/Controller/ApiController.php b/Controller/ApiController.php index 3bced1b..9e8c04b 100644 --- a/Controller/ApiController.php +++ b/Controller/ApiController.php @@ -181,7 +181,7 @@ final class ApiController extends Controller } /** @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); $uploaded = new NullCollection(); @@ -249,7 +249,7 @@ final class ApiController extends Controller { $val = []; if (($val['media'] = (!$request->hasData('media') && empty($request->files))) - || ($val['asset'] = !$request->hasData('asset')) + || ($val['ref'] = !$request->hasData('ref')) ) { return $val; } @@ -279,7 +279,7 @@ final class ApiController extends Controller 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); if ($response->header->status !== RequestStatusCode::R_200) { @@ -292,7 +292,7 @@ final class ApiController extends Controller } $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 { $val = []; - if (($val['id'] = !$request->hasData('id')) + if (($val['ref'] = !$request->hasData('ref')) ) { return $val; } diff --git a/Theme/Backend/asset-view.tpl.php b/Theme/Backend/asset-view.tpl.php index bbe039c..6b39389 100644 --- a/Theme/Backend/asset-view.tpl.php +++ b/Theme/Backend/asset-view.tpl.php @@ -133,12 +133,12 @@ echo $this->data['nav']->render(); request->uri->fragment === 'c-tab-3' ? ' checked' : ''; ?>>
- data['media-upload']->render('asset-file', 'files', '', $asset->files); ?> + data['media-upload']->render('asset-file', 'files', '', $asset->files, '{/api}accounting/asset/file?csrf={$CSRF}', (string) $item->id); ?>
request->uri->fragment === 'c-tab-4' ? ' checked' : ''; ?>>
- data['asset-notes']->render('asset-notes', '', $asset->notes); ?> + data['asset-notes']->render('asset-notes', '', $asset->notes, '{/api}accounting/asset/note?csrf={$CSRF}', (string) $asset->id); ?>
request->uri->fragment === 'c-tab-5' ? ' checked' : ''; ?>>