bug fixes

This commit is contained in:
Dennis Eichhorn 2024-10-11 19:17:40 +00:00
parent 26c162c649
commit 67c054e810
7 changed files with 84 additions and 34 deletions

View File

@ -338,7 +338,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('repeatable', $attribute['repeatable'] ?? false); $request->setData('repeatable', $attribute['repeatable'] ?? false);
$request->setData('internal', $attribute['internal'] ?? false); $request->setData('internal', $attribute['internal'] ?? false);
@ -369,9 +369,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->apiItemAttributeTypeL11nCreate($request, $response); $module->apiItemAttributeTypeL11nCreate($request, $response);
} }
@ -414,7 +414,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');
} }
@ -442,9 +442,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->apiItemAttributeValueL11nCreate($request, $response); $module->apiItemAttributeValueL11nCreate($request, $response);
} }
@ -479,7 +479,7 @@ final class Installer extends InstallerAbstract
$request->header->account = 1; $request->header->account = 1;
$request->setData('name', $type['name'] ?? ''); $request->setData('name', $type['name'] ?? '');
$request->setData('title', \reset($type['l11n'])); $request->setData('content', \reset($type['l11n']));
$module->apiItemMaterialTypeCreate($request, $response); $module->apiItemMaterialTypeCreate($request, $response);
@ -503,9 +503,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', $itemMaterialType[$type['name']]['id']); $request->setData('ref', $itemMaterialType[$type['name']]['id']);
$module->apiItemMaterialTypeL11nCreate($request, $response); $module->apiItemMaterialTypeL11nCreate($request, $response);
} }

View File

@ -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(\?.*|$)$' => [ '^.*/item/material(\?.*|$)$' => [
[ [
'dest' => '\Modules\ItemManagement\Controller\ApiController:apiItemMaterialTypeCreate', 'dest' => '\Modules\ItemManagement\Controller\ApiController:apiItemMaterialTypeCreate',

View File

@ -272,7 +272,7 @@ final class ApiController extends Controller
$internalRequest->header->account = $request->header->account; $internalRequest->header->account = $request->header->account;
$internalRequest->setData('item', $item->id); $internalRequest->setData('ref', $item->id);
$internalRequest->setData('type', $names['name1']->id); $internalRequest->setData('type', $names['name1']->id);
$internalRequest->setData('content', $request->getDataString('name1')); $internalRequest->setData('content', $request->getDataString('name1'));
$internalRequest->setData('language', $request->getDataString('language') ?? $request->header->l11n->language); $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->header->account = $request->header->account;
$internalRequest->setData('item', $item->id); $internalRequest->setData('ref', $item->id);
$internalRequest->setData('type', $names['name2']->id); $internalRequest->setData('type', $names['name2']->id);
$internalRequest->setData('content', $request->getDataString('name2')); $internalRequest->setData('content', $request->getDataString('name2'));
$internalRequest->setData('language', $request->getDataString('language') ?? $request->header->l11n->language); $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?! // @question This kind of thing should happen in a separate function?!
$exists = ItemL11nMapper::get() $exists = ItemL11nMapper::get()
->where('ref', $request->getDataInt('item') ?? 0) ->where('ref', $request->getDataInt('ref') ?? 0)
->where('type', $request->getDataInt('type') ?? 0) ->where('type', $request->getDataInt('type') ?? 0)
->where('language', $request->getDataString('language') ?? $request->header->l11n->language) ->where('language', $request->getDataString('language') ?? $request->header->l11n->language)
->execute(); ->execute();
@ -826,7 +826,7 @@ final class ApiController extends Controller
private function createItemL11nFromRequest(RequestAbstract $request) : BaseStringL11n private function createItemL11nFromRequest(RequestAbstract $request) : BaseStringL11n
{ {
$itemL11n = new 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->type = new NullBaseStringL11nType($request->getDataInt('type') ?? 0);
$itemL11n->language = ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? $request->header->l11n->language; $itemL11n->language = ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? $request->header->l11n->language;
$itemL11n->content = $request->getDataString('content') ?? ''; $itemL11n->content = $request->getDataString('content') ?? '';
@ -846,7 +846,7 @@ final class ApiController extends Controller
private function validateItemL11nCreate(RequestAbstract $request) : array private function validateItemL11nCreate(RequestAbstract $request) : array
{ {
$val = []; $val = [];
if (($val['item'] = !$request->hasData('item')) if (($val['ref'] = !$request->hasData('ref'))
|| ($val['type'] = !$request->hasData('type')) || ($val['type'] = !$request->hasData('type'))
|| ($val['content'] = !$request->hasData('content')) || ($val['content'] = !$request->hasData('content'))
) { ) {
@ -887,7 +887,7 @@ final class ApiController extends Controller
/** @var \Modules\ItemManagement\Models\Item $item */ /** @var \Modules\ItemManagement\Models\Item $item */
$item = ItemMapper::get() $item = ItemMapper::get()
->where('id', (int) $request->getData('item')) ->where('id', (int) $request->getData('ref'))
->execute(); ->execute();
$path = $this->createItemDir($item); $path = $this->createItemDir($item);
@ -927,7 +927,7 @@ final class ApiController extends Controller
private function validateFileCreate(RequestAbstract $request) : array private function validateFileCreate(RequestAbstract $request) : array
{ {
$val = []; $val = [];
if (($val['item'] = !$request->hasData('item')) if (($val['ref'] = !$request->hasData('ref'))
) { ) {
return $val; return $val;
} }
@ -957,7 +957,7 @@ final class ApiController extends Controller
return; 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); $this->app->moduleManager->get('Editor', 'Api')->apiEditorCreate($request, $response, $data);
if ($response->header->status !== RequestStatusCode::R_200) { if ($response->header->status !== RequestStatusCode::R_200) {
@ -970,7 +970,7 @@ final class ApiController extends Controller
} }
$model = $responseData['response']; $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 private function validateNoteCreate(RequestAbstract $request) : array
{ {
$val = []; $val = [];
if (($val['id'] = !$request->hasData('id')) if (($val['ref'] = !$request->hasData('ref'))
) { ) {
return $val; return $val;
} }
@ -1088,7 +1088,7 @@ final class ApiController extends Controller
private function validateMaterialTypeCreate(RequestAbstract $request) : array private function validateMaterialTypeCreate(RequestAbstract $request) : array
{ {
$val = []; $val = [];
if (($val['title'] = !$request->hasData('title')) if (($val['content'] = !$request->hasData('content'))
|| ($val['name'] = !$request->hasData('name')) || ($val['name'] = !$request->hasData('name'))
) { ) {
return $val; return $val;
@ -1110,7 +1110,7 @@ final class ApiController extends Controller
{ {
$materialType = new BaseStringL11nType($request->getDataString('name') ?? ''); $materialType = new BaseStringL11nType($request->getDataString('name') ?? '');
$materialType->setL11n( $materialType->setL11n(
$request->getDataString('title') ?? '', $request->getDataString('content') ?? '',
ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? ISO639x1Enum::_EN ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? ISO639x1Enum::_EN
); );
@ -1156,8 +1156,8 @@ final class ApiController extends Controller
private function validateMaterialTypeL11nCreate(RequestAbstract $request) : array private function validateMaterialTypeL11nCreate(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;
} }
@ -1177,9 +1177,9 @@ final class ApiController extends Controller
private function createMaterialTypeL11nFromRequest(RequestAbstract $request) : BaseStringL11n private function createMaterialTypeL11nFromRequest(RequestAbstract $request) : BaseStringL11n
{ {
$materialL11n = new 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->language = ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? $request->header->l11n->language;
$materialL11n->content = $request->getDataString('title') ?? ''; $materialL11n->content = $request->getDataString('content') ?? '';
return $materialL11n; return $materialL11n;
} }

View File

@ -512,7 +512,8 @@ echo $this->data['nav']->render();
<?= $this->data['l11nView']->render( <?= $this->data['l11nView']->render(
$this->data['l11nValues'], $this->data['l11nValues'],
$this->data['l11nTypes'] ?? [], $this->data['l11nTypes'] ?? [],
'{/api}item/l11n?csrf={$CSRF}' '{/api}item/l11n?csrf={$CSRF}',
(string) $item->id
); );
?> ?>
</div> </div>
@ -1413,12 +1414,12 @@ echo $this->data['nav']->render();
<input type="radio" id="c-tab-12" name="tabular-2" checked> <input type="radio" id="c-tab-12" name="tabular-2" checked>
<div class="tab col-simple"> <div class="tab col-simple">
<?= $this->data['note']->render('item-note', 'notes', $item->notes); ?> <?= $this->data['note']->render('item-note', 'notes', $item->notes, '{/api}item/note?csrf={$CSRF}', (string) $item->id); ?>
</div> </div>
<input type="radio" id="c-tab-13" name="tabular-2" checked> <input type="radio" id="c-tab-13" name="tabular-2" checked>
<div class="tab col-simple"> <div class="tab col-simple">
<?= $this->data['media-upload']->render('item-file', 'files', '', $this->data['files']); ?> <?= $this->data['media-upload']->render('item-file', 'files', '', $this->data['files'], '{/api}item/file?csrf={$CSRF}', (string) $item->id); ?>
</div> </div>
<input type="radio" id="c-tab-14" name="tabular-2" checked> <input type="radio" id="c-tab-14" name="tabular-2" checked>

View File

@ -54,7 +54,8 @@ echo $this->data['nav']->render(); ?>
<?= $this->data['l11nView']->render( <?= $this->data['l11nView']->render(
$this->data['l11nValues'], $this->data['l11nValues'],
[], [],
'{/api}item/material/l11n?csrf={$CSRF}' '{/api}item/material/l11n?csrf={$CSRF}',
(string) $type->id
); );
?> ?>
</div> </div>

View File

@ -53,8 +53,8 @@ trait ApiControllerAttributeTrait
$request = new HttpRequest(); $request = new HttpRequest();
$request->header->account = 1; $request->header->account = 1;
$request->setData('title', 'DE:2'); $request->setData('content', 'DE:2');
$request->setData('type', '1'); $request->setData('ref', '1');
$request->setData('language', ISO639x1Enum::_DE); $request->setData('language', ISO639x1Enum::_DE);
$this->attrModule->apiItemAttributeTypeL11nCreate($request, $response); $this->attrModule->apiItemAttributeTypeL11nCreate($request, $response);

View File

@ -85,7 +85,7 @@ trait ApiControllerItemTrait
$request->header->account = 1; $request->header->account = 1;
$request->setData('name', '123456 backend'); $request->setData('name', '123456 backend');
$request->setData('item', 1); $request->setData('ref', 1);
$request->setData('tag', $profileImageType->id); $request->setData('tag', $profileImageType->id);
TestUtils::setMember($request, 'files', [ TestUtils::setMember($request, 'files', [
@ -116,7 +116,7 @@ trait ApiControllerItemTrait
$request->header->account = 1; $request->header->account = 1;
$request->setData('name', 'test file backend'); $request->setData('name', 'test file backend');
$request->setData('item', 1); $request->setData('ref', 1);
TestUtils::setMember($request, 'files', [ TestUtils::setMember($request, 'files', [
'file1' => [ 'file1' => [
@ -146,7 +146,7 @@ trait ApiControllerItemTrait
$MARKDOWN = "# Test Title\n\nThis is **some** text."; $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('title', \trim(\strtok($MARKDOWN, "\n"), ' #'));
$request->setData('plain', \preg_replace('/^.+\n/', '', $MARKDOWN)); $request->setData('plain', \preg_replace('/^.+\n/', '', $MARKDOWN));