diff --git a/Admin/Installer.php b/Admin/Installer.php index 78f8891..e862f4b 100755 --- a/Admin/Installer.php +++ b/Admin/Installer.php @@ -338,7 +338,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('repeatable', $attribute['repeatable'] ?? false); $request->setData('internal', $attribute['internal'] ?? false); @@ -369,9 +369,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->apiItemAttributeTypeL11nCreate($request, $response); } @@ -414,7 +414,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'); } @@ -442,9 +442,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->apiItemAttributeValueL11nCreate($request, $response); } @@ -479,7 +479,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'])); $module->apiItemMaterialTypeCreate($request, $response); @@ -503,9 +503,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', $itemMaterialType[$type['name']]['id']); + $request->setData('ref', $itemMaterialType[$type['name']]['id']); $module->apiItemMaterialTypeL11nCreate($request, $response); } diff --git a/Admin/Routes/Web/Api.php b/Admin/Routes/Web/Api.php index 9a8a33b..36aa4f9 100755 --- a/Admin/Routes/Web/Api.php +++ b/Admin/Routes/Web/Api.php @@ -68,6 +68,54 @@ return [ ], ], ], + '^.*/item/file(\?.*|$)$' => [ + [ + 'dest' => '\Modules\ItemManagement\Controller\ApiController:apiFileCreate', + 'verb' => RouteVerb::PUT, + 'csrf' => true, + 'active' => true, + 'permission' => [ + 'module' => ApiController::NAME, + 'type' => PermissionType::CREATE, + 'state' => PermissionCategory::SALES_ITEM, + ], + ], + ], + '^.*/item/note(\?.*|$)$' => [ + [ + 'dest' => '\Modules\ItemManagement\Controller\ApiController:apiNoteCreate', + 'verb' => RouteVerb::PUT, + 'csrf' => true, + 'active' => true, + 'permission' => [ + 'module' => ApiController::NAME, + 'type' => PermissionType::CREATE, + 'state' => PermissionCategory::SALES_ITEM, + ], + ], + [ + 'dest' => '\Modules\ItemManagement\Controller\ApiController:apiNoteUpdate', + 'verb' => RouteVerb::SET, + 'csrf' => true, + 'active' => true, + 'permission' => [ + 'module' => ApiController::NAME, + 'type' => PermissionType::MODIFY, + 'state' => PermissionCategory::SALES_ITEM, + ], + ], + [ + 'dest' => '\Modules\ItemManagement\Controller\ApiController:apiNoteDelete', + 'verb' => RouteVerb::DELETE, + 'csrf' => true, + 'active' => true, + 'permission' => [ + 'module' => ApiController::NAME, + 'type' => PermissionType::DELETE, + 'state' => PermissionCategory::SALES_ITEM, + ], + ], + ], '^.*/item/material(\?.*|$)$' => [ [ 'dest' => '\Modules\ItemManagement\Controller\ApiController:apiItemMaterialTypeCreate', diff --git a/Controller/ApiController.php b/Controller/ApiController.php index 8b2109f..2a0538d 100755 --- a/Controller/ApiController.php +++ b/Controller/ApiController.php @@ -272,7 +272,7 @@ final class ApiController extends Controller $internalRequest->header->account = $request->header->account; - $internalRequest->setData('item', $item->id); + $internalRequest->setData('ref', $item->id); $internalRequest->setData('type', $names['name1']->id); $internalRequest->setData('content', $request->getDataString('name1')); $internalRequest->setData('language', $request->getDataString('language') ?? $request->header->l11n->language); @@ -285,7 +285,7 @@ final class ApiController extends Controller $internalRequest->header->account = $request->header->account; - $internalRequest->setData('item', $item->id); + $internalRequest->setData('ref', $item->id); $internalRequest->setData('type', $names['name2']->id); $internalRequest->setData('content', $request->getDataString('name2')); $internalRequest->setData('language', $request->getDataString('language') ?? $request->header->l11n->language); @@ -794,7 +794,7 @@ final class ApiController extends Controller // @question This kind of thing should happen in a separate function?! $exists = ItemL11nMapper::get() - ->where('ref', $request->getDataInt('item') ?? 0) + ->where('ref', $request->getDataInt('ref') ?? 0) ->where('type', $request->getDataInt('type') ?? 0) ->where('language', $request->getDataString('language') ?? $request->header->l11n->language) ->execute(); @@ -826,7 +826,7 @@ final class ApiController extends Controller private function createItemL11nFromRequest(RequestAbstract $request) : BaseStringL11n { $itemL11n = new BaseStringL11n(); - $itemL11n->ref = $request->getDataInt('item') ?? 0; + $itemL11n->ref = $request->getDataInt('ref') ?? 0; $itemL11n->type = new NullBaseStringL11nType($request->getDataInt('type') ?? 0); $itemL11n->language = ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? $request->header->l11n->language; $itemL11n->content = $request->getDataString('content') ?? ''; @@ -846,7 +846,7 @@ final class ApiController extends Controller private function validateItemL11nCreate(RequestAbstract $request) : array { $val = []; - if (($val['item'] = !$request->hasData('item')) + if (($val['ref'] = !$request->hasData('ref')) || ($val['type'] = !$request->hasData('type')) || ($val['content'] = !$request->hasData('content')) ) { @@ -887,7 +887,7 @@ final class ApiController extends Controller /** @var \Modules\ItemManagement\Models\Item $item */ $item = ItemMapper::get() - ->where('id', (int) $request->getData('item')) + ->where('id', (int) $request->getData('ref')) ->execute(); $path = $this->createItemDir($item); @@ -927,7 +927,7 @@ final class ApiController extends Controller private function validateFileCreate(RequestAbstract $request) : array { $val = []; - if (($val['item'] = !$request->hasData('item')) + if (($val['ref'] = !$request->hasData('ref')) ) { return $val; } @@ -957,7 +957,7 @@ final class ApiController extends Controller return; } - $request->setData('virtualpath', '/Modules/ItemManagement/Items/' . $request->getData('id'), true); + $request->setData('virtualpath', '/Modules/ItemManagement/Items/' . $request->getData('ref'), true); $this->app->moduleManager->get('Editor', 'Api')->apiEditorCreate($request, $response, $data); if ($response->header->status !== RequestStatusCode::R_200) { @@ -970,7 +970,7 @@ final class ApiController extends Controller } $model = $responseData['response']; - $this->createModelRelation($request->header->account, (int) $request->getData('id'), $model->id, ItemMapper::class, 'notes', '', $request->getOrigin()); + $this->createModelRelation($request->header->account, (int) $request->getData('ref'), $model->id, ItemMapper::class, 'notes', '', $request->getOrigin()); } /** @@ -985,7 +985,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; } @@ -1088,7 +1088,7 @@ final class ApiController extends Controller private function validateMaterialTypeCreate(RequestAbstract $request) : array { $val = []; - if (($val['title'] = !$request->hasData('title')) + if (($val['content'] = !$request->hasData('content')) || ($val['name'] = !$request->hasData('name')) ) { return $val; @@ -1110,7 +1110,7 @@ final class ApiController extends Controller { $materialType = new BaseStringL11nType($request->getDataString('name') ?? ''); $materialType->setL11n( - $request->getDataString('title') ?? '', + $request->getDataString('content') ?? '', ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? ISO639x1Enum::_EN ); @@ -1156,8 +1156,8 @@ final class ApiController extends Controller private function validateMaterialTypeL11nCreate(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; } @@ -1177,9 +1177,9 @@ final class ApiController extends Controller private function createMaterialTypeL11nFromRequest(RequestAbstract $request) : BaseStringL11n { $materialL11n = new BaseStringL11n(); - $materialL11n->ref = $request->getDataInt('type') ?? 0; + $materialL11n->ref = $request->getDataInt('ref') ?? 0; $materialL11n->language = ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? $request->header->l11n->language; - $materialL11n->content = $request->getDataString('title') ?? ''; + $materialL11n->content = $request->getDataString('content') ?? ''; return $materialL11n; } diff --git a/Theme/Backend/item-view.tpl.php b/Theme/Backend/item-view.tpl.php index f0c629f..a838387 100644 --- a/Theme/Backend/item-view.tpl.php +++ b/Theme/Backend/item-view.tpl.php @@ -512,7 +512,8 @@ echo $this->data['nav']->render(); data['l11nView']->render( $this->data['l11nValues'], $this->data['l11nTypes'] ?? [], - '{/api}item/l11n?csrf={$CSRF}' + '{/api}item/l11n?csrf={$CSRF}', + (string) $item->id ); ?> @@ -1413,12 +1414,12 @@ echo $this->data['nav']->render();
- data['note']->render('item-note', 'notes', $item->notes); ?> + data['note']->render('item-note', 'notes', $item->notes, '{/api}item/note?csrf={$CSRF}', (string) $item->id); ?>
- data['media-upload']->render('item-file', 'files', '', $this->data['files']); ?> + data['media-upload']->render('item-file', 'files', '', $this->data['files'], '{/api}item/file?csrf={$CSRF}', (string) $item->id); ?>
diff --git a/Theme/Backend/material-view.tpl.php b/Theme/Backend/material-view.tpl.php index d01421f..ba2691e 100644 --- a/Theme/Backend/material-view.tpl.php +++ b/Theme/Backend/material-view.tpl.php @@ -54,7 +54,8 @@ echo $this->data['nav']->render(); ?> data['l11nView']->render( $this->data['l11nValues'], [], - '{/api}item/material/l11n?csrf={$CSRF}' + '{/api}item/material/l11n?csrf={$CSRF}', + (string) $type->id ); ?> diff --git a/tests/Controller/Api/ApiControllerAttributeTrait.php b/tests/Controller/Api/ApiControllerAttributeTrait.php index 78a39dc..4e23b60 100755 --- a/tests/Controller/Api/ApiControllerAttributeTrait.php +++ b/tests/Controller/Api/ApiControllerAttributeTrait.php @@ -53,8 +53,8 @@ trait ApiControllerAttributeTrait $request = new HttpRequest(); $request->header->account = 1; - $request->setData('title', 'DE:2'); - $request->setData('type', '1'); + $request->setData('content', 'DE:2'); + $request->setData('ref', '1'); $request->setData('language', ISO639x1Enum::_DE); $this->attrModule->apiItemAttributeTypeL11nCreate($request, $response); diff --git a/tests/Controller/Api/ApiControllerItemTrait.php b/tests/Controller/Api/ApiControllerItemTrait.php index 1c2e436..67e6aa6 100755 --- a/tests/Controller/Api/ApiControllerItemTrait.php +++ b/tests/Controller/Api/ApiControllerItemTrait.php @@ -85,7 +85,7 @@ trait ApiControllerItemTrait $request->header->account = 1; $request->setData('name', '123456 backend'); - $request->setData('item', 1); + $request->setData('ref', 1); $request->setData('tag', $profileImageType->id); TestUtils::setMember($request, 'files', [ @@ -116,7 +116,7 @@ trait ApiControllerItemTrait $request->header->account = 1; $request->setData('name', 'test file backend'); - $request->setData('item', 1); + $request->setData('ref', 1); TestUtils::setMember($request, 'files', [ 'file1' => [ @@ -146,7 +146,7 @@ trait ApiControllerItemTrait $MARKDOWN = "# Test Title\n\nThis is **some** text."; - $request->setData('id', 1); + $request->setData('ref', 1); $request->setData('title', \trim(\strtok($MARKDOWN, "\n"), ' #')); $request->setData('plain', \preg_replace('/^.+\n/', '', $MARKDOWN));