From ef72ee0b0bb5e8b01bae93cd2db4aea0fe30e871 Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Fri, 29 Mar 2024 15:26:00 +0000 Subject: [PATCH] started with template fixes --- Admin/Install/Navigation.install.json | 4 +- Admin/Routes/Web/Api.php | 18 +++- Admin/Routes/Web/Backend.php | 28 ++++- Controller.js | 1 + Controller/ApiController.php | 15 +-- Controller/BackendController.php | 73 ++++--------- Theme/Backend/Lang/de.lang.php | 1 + Theme/Backend/Lang/en.lang.php | 1 + Theme/Backend/attribute-type-list.tpl.php | 71 ------------- Theme/Backend/attribute-type.tpl.php | 92 ---------------- Theme/Backend/attribute-value-list.tpl.php | 0 Theme/Backend/attribute-value.tpl.php | 0 Theme/Backend/item-create.tpl.php | 118 ++++++++++----------- Theme/Backend/item-view.tpl.php | 118 ++++++++------------- Theme/Backend/material-view.tpl.php | 6 +- 15 files changed, 184 insertions(+), 362 deletions(-) delete mode 100755 Theme/Backend/attribute-type-list.tpl.php delete mode 100755 Theme/Backend/attribute-type.tpl.php delete mode 100755 Theme/Backend/attribute-value-list.tpl.php delete mode 100755 Theme/Backend/attribute-value.tpl.php diff --git a/Admin/Install/Navigation.install.json b/Admin/Install/Navigation.install.json index a30350b..3fd89a4 100755 --- a/Admin/Install/Navigation.install.json +++ b/Admin/Install/Navigation.install.json @@ -47,8 +47,8 @@ "pid": "/item/attribute", "type": 3, "subtype": 1, - "name": "Values", - "uri": "{/base}/item/attribute/value/list?{?}", + "name": "Create", + "uri": "{/base}/item/attribute/type/create?{?}", "target": "self", "icon": null, "order": 10, diff --git a/Admin/Routes/Web/Api.php b/Admin/Routes/Web/Api.php index 2770ea4..63cf41e 100755 --- a/Admin/Routes/Web/Api.php +++ b/Admin/Routes/Web/Api.php @@ -22,6 +22,7 @@ return [ [ 'dest' => '\Modules\ItemManagement\Controller\ApiController:apiItemListExport', 'verb' => RouteVerb::GET, + 'csrf' => true, 'permission' => [ 'module' => ApiController::NAME, 'type' => PermissionType::READ, @@ -33,6 +34,7 @@ return [ [ 'dest' => '\Modules\ItemManagement\Controller\ApiController:apiItemFind', 'verb' => RouteVerb::GET, + 'csrf' => true, 'permission' => [ 'module' => ApiController::NAME, 'type' => PermissionType::READ, @@ -44,6 +46,7 @@ return [ [ 'dest' => '\Modules\ItemManagement\Controller\ApiAttributeController:apiItemAttributeCreate', 'verb' => RouteVerb::PUT, + 'csrf' => true, 'permission' => [ 'module' => ApiController::NAME, 'type' => PermissionType::READ, @@ -53,6 +56,7 @@ return [ [ 'dest' => '\Modules\ItemManagement\Controller\ApiAttributeController:apiItemAttributeUpdate', 'verb' => RouteVerb::SET, + 'csrf' => true, 'permission' => [ 'module' => ApiController::NAME, 'type' => PermissionType::READ, @@ -64,6 +68,7 @@ return [ [ 'dest' => '\Modules\ItemManagement\Controller\ApiAttributeController:apiItemAttributeTypeCreate', 'verb' => RouteVerb::PUT, + 'csrf' => true, 'permission' => [ 'module' => ApiController::NAME, 'type' => PermissionType::READ, @@ -73,6 +78,7 @@ return [ [ 'dest' => '\Modules\ItemManagement\Controller\ApiAttributeController:apiItemAttributeTypeUpdate', 'verb' => RouteVerb::SET, + 'csrf' => true, 'permission' => [ 'module' => ApiController::NAME, 'type' => PermissionType::READ, @@ -84,6 +90,7 @@ return [ [ 'dest' => '\Modules\ItemManagement\Controller\ApiAttributeController:apiItemAttributeTypeL11nCreate', 'verb' => RouteVerb::PUT, + 'csrf' => true, 'permission' => [ 'module' => ApiController::NAME, 'type' => PermissionType::READ, @@ -93,6 +100,7 @@ return [ [ 'dest' => '\Modules\ItemManagement\Controller\ApiAttributeController:apiItemAttributeTypeL11nUpdate', 'verb' => RouteVerb::SET, + 'csrf' => true, 'permission' => [ 'module' => ApiController::NAME, 'type' => PermissionType::READ, @@ -104,6 +112,7 @@ return [ [ 'dest' => '\Modules\ItemManagement\Controller\ApiAttributeController:apiItemAttributeValueCreate', 'verb' => RouteVerb::PUT, + 'csrf' => true, 'permission' => [ 'module' => ApiController::NAME, 'type' => PermissionType::READ, @@ -113,6 +122,7 @@ return [ [ 'dest' => '\Modules\ItemManagement\Controller\ApiAttributeController:apiItemAttributeValueUpdate', 'verb' => RouteVerb::SET, + 'csrf' => true, 'permission' => [ 'module' => ApiController::NAME, 'type' => PermissionType::READ, @@ -120,10 +130,11 @@ return [ ], ], ], - '^.*/item/attribute/value$' => [ + '^.*/item/attribute/value/l11n$' => [ [ 'dest' => '\Modules\ItemManagement\Controller\ApiAttributeController:apiItemAttributeValueL11nCreate', 'verb' => RouteVerb::PUT, + 'csrf' => true, 'permission' => [ 'module' => ApiController::NAME, 'type' => PermissionType::READ, @@ -133,6 +144,7 @@ return [ [ 'dest' => '\Modules\ItemManagement\Controller\ApiAttributeController:apiItemAttributeValueL11nUpdate', 'verb' => RouteVerb::SET, + 'csrf' => true, 'permission' => [ 'module' => ApiController::NAME, 'type' => PermissionType::READ, @@ -144,6 +156,7 @@ return [ [ 'dest' => '\Modules\ItemManagement\Controller\ApiController:apiItemL11nCreate', 'verb' => RouteVerb::PUT, + 'csrf' => true, 'permission' => [ 'module' => ApiController::NAME, 'type' => PermissionType::READ, @@ -153,6 +166,7 @@ return [ [ 'dest' => '\Modules\ItemManagement\Controller\ApiController:apiItemL11nUpdate', 'verb' => RouteVerb::SET, + 'csrf' => true, 'permission' => [ 'module' => ApiController::NAME, 'type' => PermissionType::READ, @@ -164,6 +178,7 @@ return [ [ 'dest' => '\Modules\ItemManagement\Controller\ApiController:apiItemL11nTypeCreate', 'verb' => RouteVerb::PUT, + 'csrf' => true, 'permission' => [ 'module' => ApiController::NAME, 'type' => PermissionType::READ, @@ -173,6 +188,7 @@ return [ [ 'dest' => '\Modules\ItemManagement\Controller\ApiController:apiItemL11nTypeUpdate', 'verb' => RouteVerb::SET, + 'csrf' => true, 'permission' => [ 'module' => ApiController::NAME, 'type' => PermissionType::READ, diff --git a/Admin/Routes/Web/Backend.php b/Admin/Routes/Web/Backend.php index 0437fbb..9225851 100755 --- a/Admin/Routes/Web/Backend.php +++ b/Admin/Routes/Web/Backend.php @@ -29,7 +29,7 @@ return [ ], ], ], - '^.*/item/attribute/type(\?.*$|$)' => [ + '^.*/item/attribute/type/view(\?.*$|$)' => [ [ 'dest' => '\Modules\ItemManagement\Controller\BackendController:viewItemManagementAttributeType', 'verb' => RouteVerb::GET, @@ -40,9 +40,20 @@ return [ ], ], ], - '^.*/item/attribute/value(\?.*$|$)' => [ + '^.*/item/attribute/type/create(\?.*$|$)' => [ [ - 'dest' => '\Modules\ItemManagement\Controller\BackendController:viewItemManagementAttributeValues', + 'dest' => '\Modules\ItemManagement\Controller\BackendController:viewItemManagementAttributeTypeCreate', + 'verb' => RouteVerb::GET, + 'permission' => [ + 'module' => BackendController::NAME, + 'type' => PermissionType::CREATE, + 'state' => PermissionCategory::ATTRIBUTE, + ], + ], + ], + '^.*/item/attribute/value/view(\?.*$|$)' => [ + [ + 'dest' => '\Modules\ItemManagement\Controller\BackendController:viewItemManagementAttributeValue', 'verb' => RouteVerb::GET, 'permission' => [ 'module' => BackendController::NAME, @@ -51,6 +62,17 @@ return [ ], ], ], + '^.*/item/attribute/value/create(\?.*$|$)' => [ + [ + 'dest' => '\Modules\ItemManagement\Controller\BackendController:viewItemManagementAttributeValueCreate', + 'verb' => RouteVerb::GET, + 'permission' => [ + 'module' => BackendController::NAME, + 'type' => PermissionType::CREATE, + 'state' => PermissionCategory::ATTRIBUTE, + ], + ], + ], '^/item/list(\?.*$|$)' => [ [ 'dest' => '\Modules\ItemManagement\Controller\BackendController:viewItemManagementItemList', diff --git a/Controller.js b/Controller.js index 90ab5ca..235ff55 100755 --- a/Controller.js +++ b/Controller.js @@ -41,6 +41,7 @@ omsApp.Modules.ItemManagement = class { const self = this; const data = JSON.parse(chart.getAttribute('data-chart')); + /** global: Chart */ const myChart = new Chart(chart.getContext('2d'), data); }; }; diff --git a/Controller/ApiController.php b/Controller/ApiController.php index f72bdb4..ee60711 100755 --- a/Controller/ApiController.php +++ b/Controller/ApiController.php @@ -188,7 +188,7 @@ final class ApiController extends Controller private function createItemDir(Item $item) : string { return '/Modules/ItemManagement/Items/' - . (empty($item->number) ? $item->id : $item->number); + . $item->id; } /** @@ -302,7 +302,8 @@ final class ApiController extends Controller $billing->apiPriceCreate($internalRequest, $internalResponse); } - $this->createMediaDirForItem($item->number, $request->header->account); + // @todo should this collection get added to the parent collection? + $this->createMediaDirForItem($item->id, $request->header->account); $path = $this->createItemDir($item); $uploadedFiles = $request->files['item_profile_image'] ?? []; @@ -396,19 +397,19 @@ final class ApiController extends Controller /** * Create directory for an account * - * @param string $number Item number - * @param int $createdBy Creator of the directory + * @param int $id Item number + * @param int $createdBy Creator of the directory * * @return Collection * * @since 1.0.0 */ - private function createMediaDirForItem(string $number, int $createdBy) : Collection + private function createMediaDirForItem(int $id, int $createdBy) : Collection { $collection = new Collection(); - $collection->name = $number; + $collection->name = $id; $collection->setVirtualPath('/Modules/ItemManagement/Items'); - $collection->setPath('/Modules/Media/Files/Modules/ItemManagement/Items/' . $number); + $collection->setPath('/Modules/Media/Files/Modules/ItemManagement/Items/' . $id); $collection->createdBy = new NullAccount($createdBy); CollectionMapper::create()->execute($collection); diff --git a/Controller/BackendController.php b/Controller/BackendController.php index 96d1b85..1bc218d 100755 --- a/Controller/BackendController.php +++ b/Controller/BackendController.php @@ -73,46 +73,15 @@ final class BackendController extends Controller */ public function viewItemManagementAttributeTypeList(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface { - $view = new View($this->app->l11nManager, $request, $response); - $view->setTemplate('/Modules/ItemManagement/Theme/Backend/attribute-type-list'); + $view = new \Modules\Attribute\Theme\Backend\Components\AttributeTypeListView($this->app->l11nManager, $request, $response); $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1004802001, $request, $response); - /** @var \Modules\Attribute\Models\AttributeType[] $attributes */ - $attributes = ItemAttributeTypeMapper::getAll() + $view->attributes = ItemAttributeTypeMapper::getAll() ->with('l11n') ->where('l11n/language', $response->header->l11n->language) ->execute(); - $view->data['attributes'] = $attributes; - - return $view; - } - - /** - * Routing end-point for application behavior. - * - * @param RequestAbstract $request Request - * @param ResponseAbstract $response Response - * @param array $data Generic data - * - * @return RenderableInterface - * - * @since 1.0.0 - * @codeCoverageIgnore - */ - public function viewItemManagementAttributeValues(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface - { - $view = new View($this->app->l11nManager, $request, $response); - $view->setTemplate('/Modules/ItemManagement/Theme/Backend/attribute-value-list'); - $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1004802001, $request, $response); - - /** @var \Modules\Attribute\Models\AttributeValue[] $attributes */ - $attributes = ItemAttributeValueMapper::getAll() - ->with('l11n') - ->where('l11n/language', $response->header->l11n->language) - ->execute(); - - $view->data['attributes'] = $attributes; + $view->path = 'item'; return $view; } @@ -131,25 +100,23 @@ final class BackendController extends Controller */ public function viewItemManagementAttributeType(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface { - $view = new View($this->app->l11nManager, $request, $response); - $view->setTemplate('/Modules/ItemManagement/Theme/Backend/attribute-type'); + $view = new \Modules\Attribute\Theme\Backend\Components\AttributeTypeView($this->app->l11nManager, $request, $response); $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1004802001, $request, $response); - /** @var \Modules\Attribute\Models\AttributeType $attribute */ - $attribute = ItemAttributeTypeMapper::get() + $view->attribute = ItemAttributeTypeMapper::get() ->with('l11n') + ->with('defaults') + ->with('defaults/l11n') ->where('id', (int) $request->getData('id')) ->where('l11n/language', $response->header->l11n->language) + ->where('defaults/l11n/language', [$response->header->l11n->language, null]) ->execute(); - $l11ns = ItemAttributeTypeL11nMapper::getAll() - ->where('ref', $attribute->id) + $view->l11ns = ItemAttributeTypeL11nMapper::getAll() + ->where('ref', $view->attribute->id) ->execute(); - $view->data['attribute'] = $attribute; - $view->data['l11nValues'] = $l11ns; - - $view->data['l11nView'] = new \Web\Backend\Views\L11nView($this->app->l11nManager, $request, $response); + $view->path = 'item'; return $view; } @@ -168,18 +135,20 @@ final class BackendController extends Controller */ public function viewItemManagementAttributeValue(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface { - $view = new View($this->app->l11nManager, $request, $response); - $view->setTemplate('/Modules/ItemManagement/Theme/Backend/attribute-value'); + $view = new \Modules\Attribute\Theme\Backend\Components\AttributeValueView($this->app->l11nManager, $request, $response); $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1004802001, $request, $response); - /** @var \Modules\Attribute\Models\AttributeValue $attribute */ - $attribute = ItemAttributeValueMapper::get() + $view->attribute = ItemAttributeValueMapper::get() ->with('l11n') ->where('id', (int) $request->getData('id')) - ->where('l11n/language', $response->header->l11n->language) + ->where('l11n/language', [$response->header->l11n->language, null]) ->execute(); - $view->data['attribute'] = $attribute; + $view->l11ns = ItemAttributeValueL11nMapper::getAll() + ->where('ref', $view->attribute->id) + ->execute(); + + // @todo Also find the ItemAttributeType return $view; } @@ -846,7 +815,7 @@ final class BackendController extends Controller { $view = new View($this->app->l11nManager, $request, $response); $view->setTemplate('/Modules/ItemManagement/Theme/Backend/material-type-list'); - $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1002901101, $request, $response); + $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1004802001, $request, $response); $view->data['types'] = MaterialTypeMapper::getAll() ->with('l11n') @@ -872,7 +841,7 @@ final class BackendController extends Controller { $view = new View($this->app->l11nManager, $request, $response); $view->setTemplate('/Modules/ItemManagement/Theme/Backend/material-view'); - $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1002901101, $request, $response); + $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1004802001, $request, $response); $view->data['type'] = MaterialTypeMapper::get() ->with('l11n') diff --git a/Theme/Backend/Lang/de.lang.php b/Theme/Backend/Lang/de.lang.php index 2886a3b..a716932 100755 --- a/Theme/Backend/Lang/de.lang.php +++ b/Theme/Backend/Lang/de.lang.php @@ -124,6 +124,7 @@ return ['ItemManagement' => [ 'Text' => 'Text', 'TimeUnit' => 'Zeiteinheit', 'Title' => 'Titel', + 'Defaults' => 'Standard', 'TopCustomers' => 'Top Kunden', 'Tracking' => 'Verfolgung', 'TradingUnit' => 'Handelseinheit', diff --git a/Theme/Backend/Lang/en.lang.php b/Theme/Backend/Lang/en.lang.php index ddca57c..e0d8385 100755 --- a/Theme/Backend/Lang/en.lang.php +++ b/Theme/Backend/Lang/en.lang.php @@ -125,6 +125,7 @@ return ['ItemManagement' => [ 'Text' => 'Text', 'TimeUnit' => 'Unit of time', 'Title' => 'Title', + 'Defaults' => 'Defaults', 'TopCustomers' => 'Top Customers', 'Tracking' => 'Tracking', 'TradingUnit' => 'Trading Unit', diff --git a/Theme/Backend/attribute-type-list.tpl.php b/Theme/Backend/attribute-type-list.tpl.php deleted file mode 100755 index eace333..0000000 --- a/Theme/Backend/attribute-type-list.tpl.php +++ /dev/null @@ -1,71 +0,0 @@ -data['attributes']; - -echo $this->data['nav']->render(); ?> - -
-
-
-
getHtml('AttributeTypes'); ?>download
-
- - - - - $value) : ++$count; - $url = UriFactory::build('{/base}/item/attribute/type?{?}&id=' . $value->id); - ?> - -
getHtml('ID', '0', '0'); ?> - - - - getHtml('Name'); ?> - - - -
id; ?> - printHtml($value->getL11n()); ?> - - -
getHtml('Empty', '0', '0'); ?> - -
-
-
-
-
diff --git a/Theme/Backend/attribute-type.tpl.php b/Theme/Backend/attribute-type.tpl.php deleted file mode 100755 index a9601a7..0000000 --- a/Theme/Backend/attribute-type.tpl.php +++ /dev/null @@ -1,92 +0,0 @@ -data['attribute'] ?? new NullAttributeType(); - -$isNew = $attribute->id === 0; - -echo $this->data['nav']->render(); ?> - -
-
-
-
-
getHtml('Attribute', 'Attribute', 'Backend'); ?>
-
-
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- -
- -
- -
-
-
- - - - - -
-
-
-
-
- -
- data['l11nView']->render( - $this->data['l11nValues'], - [], - '{/api}item/attribute/l11n' - ); - ?> -
\ No newline at end of file diff --git a/Theme/Backend/attribute-value-list.tpl.php b/Theme/Backend/attribute-value-list.tpl.php deleted file mode 100755 index e69de29..0000000 diff --git a/Theme/Backend/attribute-value.tpl.php b/Theme/Backend/attribute-value.tpl.php deleted file mode 100755 index e69de29..0000000 diff --git a/Theme/Backend/item-create.tpl.php b/Theme/Backend/item-create.tpl.php index 9aff597..ad2890f 100755 --- a/Theme/Backend/item-create.tpl.php +++ b/Theme/Backend/item-create.tpl.php @@ -48,17 +48,17 @@ echo $this->data['nav']->render(); ?>
-
+
-
+
-
+
-
+
-
+
-
+
@@ -78,11 +78,11 @@ echo $this->data['nav']->render(); ?>