diff --git a/Admin/Installer.php b/Admin/Installer.php index 5f67b08..c65f93d 100755 --- a/Admin/Installer.php +++ b/Admin/Installer.php @@ -84,7 +84,7 @@ final class Installer extends InstallerAbstract $request->header->account = 1; $request->setData('name', $type['name'] ?? ''); - $request->setData('title', \reset($type['l11n'])); + $request->setData('content', \reset($type['l11n'])); $request->setData('language', \array_keys($type['l11n'])[0] ?? 'en'); $module->apiContractTypeCreate($request, $response); @@ -111,9 +111,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', $billType['id']); + $request->setData('ref', $billType['id']); $module->apiContractTypeL11nCreate($request, $response); } diff --git a/Admin/Routes/Web/Api.php b/Admin/Routes/Web/Api.php index bd1eab9..c84052a 100644 --- a/Admin/Routes/Web/Api.php +++ b/Admin/Routes/Web/Api.php @@ -43,6 +43,31 @@ return [ ], ], + '^.*/contract/type/l11n(\?.*|$)$' => [ + [ + 'dest' => '\Modules\ContractManagement\Controller\ApiContractTypeController:apiContractTypeL11nCreate', + 'verb' => RouteVerb::PUT, + 'csrf' => true, + 'active' => true, + 'permission' => [ + 'module' => Controller::NAME, + 'type' => PermissionType::CREATE, + 'state' => PermissionCategory::ATTRIBUTE, + ], + ], + [ + 'dest' => '\Modules\ContractManagement\Controller\ApiContractTypeController:apiContractTypeL11nUpdate', + 'verb' => RouteVerb::SET, + 'csrf' => true, + 'active' => true, + 'permission' => [ + 'module' => Controller::NAME, + 'type' => PermissionType::MODIFY, + 'state' => PermissionCategory::ATTRIBUTE, + ], + ], + ], + '^.*/contract(\?.*|$)$' => [ [ 'dest' => '\Modules\ContractManagement\Controller\ApiController:apiContractCreate', @@ -68,6 +93,56 @@ return [ ], ], + '^.*/contract/file(\?.*|$)$' => [ + [ + 'dest' => '\Modules\ContractManagement\Controller\ApiController:apiContractDocumentCreate', + 'verb' => RouteVerb::PUT, + 'csrf' => true, + 'active' => true, + 'permission' => [ + 'module' => Controller::NAME, + 'type' => PermissionType::CREATE, + 'state' => PermissionCategory::CONTRACT, + ], + ], + ], + + '^.*/contract/note(\?.*|$)$' => [ + [ + 'dest' => '\Modules\ContractManagement\Controller\ApiController:apiNoteCreate', + 'verb' => RouteVerb::PUT, + 'csrf' => true, + 'active' => true, + 'permission' => [ + 'module' => Controller::NAME, + 'type' => PermissionType::CREATE, + 'state' => PermissionCategory::CONTRACT, + ], + ], + [ + 'dest' => '\Modules\ContractManagement\Controller\ApiController:apiNoteUpdate', + 'verb' => RouteVerb::SET, + 'csrf' => true, + 'active' => true, + 'permission' => [ + 'module' => Controller::NAME, + 'type' => PermissionType::MODIFY, + 'state' => PermissionCategory::CONTRACT, + ], + ], + [ + 'dest' => '\Modules\ContractManagement\Controller\ApiController:apiNoteDelete', + 'verb' => RouteVerb::DELETE, + 'csrf' => true, + 'active' => true, + 'permission' => [ + 'module' => Controller::NAME, + 'type' => PermissionType::DELETE, + 'state' => PermissionCategory::CONTRACT, + ], + ], + ], + '^.*/contract/attribute(\?.*$|$)' => [ [ 'dest' => '\Modules\ContractManagement\Controller\ApiAttributeController:apiContractAttributeCreate', @@ -92,4 +167,29 @@ return [ ], ], ], + + '^.*/contract/attribute/type/l11n(\?.*|$)$' => [ + [ + 'dest' => '\Modules\ContractManagement\Controller\ApiAttributeController:apiContractAttributeTypeL11nCreate', + 'verb' => RouteVerb::PUT, + 'csrf' => true, + 'active' => true, + 'permission' => [ + 'module' => Controller::NAME, + 'type' => PermissionType::CREATE, + 'state' => PermissionCategory::ATTRIBUTE, + ], + ], + [ + 'dest' => '\Modules\ContractManagement\Controller\ApiAttributeController:apiContractAttributeTypeL11nUpdate', + 'verb' => RouteVerb::SET, + 'csrf' => true, + 'active' => true, + 'permission' => [ + 'module' => Controller::NAME, + 'type' => PermissionType::MODIFY, + 'state' => PermissionCategory::ATTRIBUTE, + ], + ], + ], ]; diff --git a/Controller/ApiContractTypeController.php b/Controller/ApiContractTypeController.php index f25da9d..dbb0358 100644 --- a/Controller/ApiContractTypeController.php +++ b/Controller/ApiContractTypeController.php @@ -74,7 +74,7 @@ final class ApiContractTypeController extends Controller { $contractType = new BaseStringL11nType(); $contractType->setL11n( - $request->getDataString('title') ?? '', + $request->getDataString('content') ?? '', ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? ISO639x1Enum::_EN ); $contractType->title = $request->getDataString('name') ?? ''; @@ -94,7 +94,7 @@ final class ApiContractTypeController extends Controller private function validateContractTypeCreate(RequestAbstract $request) : array { $val = []; - if (($val['title'] = !$request->hasData('title')) + if (($val['content'] = !$request->hasData('content')) ) { return $val; } @@ -141,9 +141,9 @@ final class ApiContractTypeController extends Controller private function createContractTypeL11nFromRequest(RequestAbstract $request) : BaseStringL11n { $contractTypeL11n = new BaseStringL11n(); - $contractTypeL11n->ref = $request->getDataInt('type') ?? 0; + $contractTypeL11n->ref = $request->getDataInt('ref') ?? 0; $contractTypeL11n->language = ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? $request->header->l11n->language; - $contractTypeL11n->content = $request->getDataString('title') ?? ''; + $contractTypeL11n->content = $request->getDataString('content') ?? ''; return $contractTypeL11n; } @@ -160,8 +160,8 @@ final class ApiContractTypeController extends Controller private function validateContractTypeL11nCreate(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; } @@ -329,7 +329,7 @@ final class ApiContractTypeController extends Controller public function updateContractTypeL11nFromRequest(RequestAbstract $request, BaseStringL11n $new) : BaseStringL11n { $new->language = ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? $new->language; - $new->content = $request->getDataString('title') ?? $new->content; + $new->content = $request->getDataString('content') ?? $new->content; return $new; } diff --git a/Controller/ApiController.php b/Controller/ApiController.php index 8402c89..ce10fc8 100755 --- a/Controller/ApiController.php +++ b/Controller/ApiController.php @@ -86,7 +86,6 @@ final class ApiController extends Controller { $val = []; if (($val['title'] = !$request->hasData('title')) - || ($val['duration'] = !$request->hasData('duration')) || ($val['type'] = !$request->hasData('type')) ) { return $val; @@ -161,7 +160,7 @@ final class ApiController extends Controller /** @var \Modules\ContractManagement\Models\Contract */ $contract = ContractMapper::get() - ->where('id', $request->getDataInt('contract')) + ->where('id', $request->getDataInt('ref')) ->execute(); $path = $this->createContractDir($contract); @@ -337,7 +336,7 @@ final class ApiController extends Controller return; } - $request->setData('virtualpath', '/Modules/ContractManagement/Contracts/' . $request->getData('id'), true); + $request->setData('virtualpath', '/Modules/ContractManagement/Contracts/' . $request->getData('ref'), true); $this->app->moduleManager->get('Editor', 'Api')->apiEditorCreate($request, $response, $data); if ($response->header->status !== RequestStatusCode::R_200) { @@ -350,7 +349,7 @@ final class ApiController extends Controller } $model = $responseData['response']; - $this->createModelRelation($request->header->account, (int) $request->getData('id'), $model->id, ContractMapper::class, 'notes', '', $request->getOrigin()); + $this->createModelRelation($request->header->account, (int) $request->getData('ref'), $model->id, ContractMapper::class, 'notes', '', $request->getOrigin()); } /** @@ -365,7 +364,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; } @@ -392,7 +391,12 @@ final class ApiController extends Controller if (!$this->app->accountManager->get($accountId)->hasPermission( PermissionType::MODIFY, $this->app->unitId, $this->app->appId, self::NAME, PermissionCategory::NOTE, $request->getDataInt('id')) ) { - $this->fillJsonResponse($request, $response, NotificationLevel::HIDDEN, '', '', []); + $this->fillJsonResponse( + $request, $response, + NotificationLevel::ERROR, '', + $this->app->l11nManager->getText($response->header->l11n->language, '0', '0', 'InvalidPermission'), + [] + ); $response->header->status = RequestStatusCode::R_403; return; diff --git a/Theme/Backend/contract-list.tpl.php b/Theme/Backend/contract-list.tpl.php index c9396d6..e6db268 100755 --- a/Theme/Backend/contract-list.tpl.php +++ b/Theme/Backend/contract-list.tpl.php @@ -30,7 +30,9 @@ echo $this->data['nav']->render(); ?>