From a2fb44ef7fb23a68660457c9c8a08c3217a2154b Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Fri, 11 Oct 2024 19:17:40 +0000 Subject: [PATCH] bug fixes --- Admin/Installer.php | 48 ++++++------ Admin/Routes/Web/Api.php | 78 +++++++++++++++++++ Controller/ApiDriverController.php | 22 +++--- Controller/ApiVehicleController.php | 46 +++++------ Theme/Backend/driver-view.tpl.php | 4 +- Theme/Backend/vehicle-view.tpl.php | 4 +- .../Api/ApiControllerAttributeTrait.php | 4 +- 7 files changed, 142 insertions(+), 64 deletions(-) diff --git a/Admin/Installer.php b/Admin/Installer.php index 5f14d4c..9c48b71 100755 --- a/Admin/Installer.php +++ b/Admin/Installer.php @@ -134,7 +134,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->apiFuelTypeCreate($request, $response); @@ -159,9 +159,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', $fuelTypes[$type['name']]['id']); + $request->setData('ref', $fuelTypes[$type['name']]['id']); $module->apiFuelTypeL11nCreate($request, $response); } @@ -195,7 +195,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->apiVehicleTypeCreate($request, $response); @@ -220,9 +220,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', $vehicleTypes[$type['name']]['id']); + $request->setData('ref', $vehicleTypes[$type['name']]['id']); $module->apiVehicleTypeL11nCreate($request, $response); } @@ -256,7 +256,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->apiInspectionTypeCreate($request, $response); @@ -281,9 +281,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', $inspectionTypes[$type['name']]['id']); + $request->setData('ref', $inspectionTypes[$type['name']]['id']); $module->apiInspectionTypeL11nCreate($request, $response); } @@ -317,7 +317,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->apiDriverInspectionTypeCreate($request, $response); @@ -342,9 +342,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', $inspectionTypes[$type['name']]['id']); + $request->setData('ref', $inspectionTypes[$type['name']]['id']); $module->apiDriverInspectionTypeL11nCreate($request, $response); } @@ -378,7 +378,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); @@ -409,9 +409,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->apiVehicleAttributeTypeL11nCreate($request, $response); } @@ -458,7 +458,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'); } @@ -486,9 +486,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->apiVehicleAttributeValueL11nCreate($request, $response); } @@ -523,7 +523,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); @@ -554,9 +554,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->apiDriverAttributeTypeL11nCreate($request, $response); } @@ -603,7 +603,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'); } @@ -631,9 +631,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->apiDriverAttributeValueL11nCreate($request, $response); } diff --git a/Admin/Routes/Web/Api.php b/Admin/Routes/Web/Api.php index 8024516..dc1acfb 100644 --- a/Admin/Routes/Web/Api.php +++ b/Admin/Routes/Web/Api.php @@ -32,6 +32,45 @@ return [ ], ], + '^.*/fleet/vehicle(\?.*|$)$' => [ + [ + 'dest' => '\Modules\FleetManagement\Controller\ApiController:apiVehicleCreate', + 'verb' => RouteVerb::PUT, + 'csrf' => true, + 'active' => true, + 'permission' => [ + 'module' => Controller::NAME, + 'type' => PermissionType::CREATE, + 'state' => PermissionCategory::VEHICLE, + ], + ], + [ + 'dest' => '\Modules\FleetManagement\Controller\ApiController:apiVehicleUpdate', + 'verb' => RouteVerb::SET, + 'csrf' => true, + 'active' => true, + 'permission' => [ + 'module' => Controller::NAME, + 'type' => PermissionType::MODIFY, + 'state' => PermissionCategory::VEHICLE, + ], + ], + ], + + '^.*/fleet/vehicle/file(\?.*|$)$' => [ + [ + 'dest' => '\Modules\FleetManagement\Controller\ApiController:apiMediaAddToVehicle', + 'verb' => RouteVerb::PUT, + 'csrf' => true, + 'active' => true, + 'permission' => [ + 'module' => Controller::NAME, + 'type' => PermissionType::CREATE, + 'state' => PermissionCategory::VEHICLE, + ], + ], + ], + '^.*/fleet/vehicle/attribute(\?.*$|$)' => [ [ 'dest' => '\Modules\FleetManagement\Controller\ApiVehicleAttributeController:apiVehicleAttributeCreate', @@ -57,6 +96,45 @@ return [ ], ], + '^.*/fleet/driver(\?.*|$)$' => [ + [ + 'dest' => '\Modules\FleetManagement\Controller\ApiDriverController:apiDriverCreate', + 'verb' => RouteVerb::PUT, + 'csrf' => true, + 'active' => true, + 'permission' => [ + 'module' => Controller::NAME, + 'type' => PermissionType::CREATE, + 'state' => PermissionCategory::DRIVER, + ], + ], + [ + 'dest' => '\Modules\FleetManagement\Controller\ApiDriverController:apiDriverUpdate', + 'verb' => RouteVerb::SET, + 'csrf' => true, + 'active' => true, + 'permission' => [ + 'module' => Controller::NAME, + 'type' => PermissionType::MODIFY, + 'state' => PermissionCategory::DRIVER, + ], + ], + ], + + '^.*/fleet/driver/file(\?.*|$)$' => [ + [ + 'dest' => '\Modules\FleetManagement\Controller\ApiDriverController:apiMediaAddToDriver', + 'verb' => RouteVerb::PUT, + 'csrf' => true, + 'active' => true, + 'permission' => [ + 'module' => Controller::NAME, + 'type' => PermissionType::CREATE, + 'state' => PermissionCategory::DRIVER, + ], + ], + ], + '^.*/fleet/driver/attribute(\?.*$|$)' => [ [ 'dest' => '\Modules\FleetManagement\Controller\ApiDriverAttributeController:apiDriverAttributeCreate', diff --git a/Controller/ApiDriverController.php b/Controller/ApiDriverController.php index 91b48de..620da66 100644 --- a/Controller/ApiDriverController.php +++ b/Controller/ApiDriverController.php @@ -253,7 +253,7 @@ final class ApiDriverController extends Controller } /** @var \Modules\FleetManagement\Models\Driver\Driver $driver */ - $driver = DriverMapper::get()->where('id', (int) $request->getData('driver'))->execute(); + $driver = DriverMapper::get()->where('id', (int) $request->getData('ref'))->execute(); $path = $this->createDriverDir($driver); $uploaded = new NullCollection(); @@ -321,7 +321,7 @@ final class ApiDriverController extends Controller { $val = []; if (($val['media'] = (!$request->hasData('media') && empty($request->files))) - || ($val['driver'] = !$request->hasData('driver')) + || ($val['ref'] = !$request->hasData('ref')) ) { return $val; } @@ -371,7 +371,7 @@ final class ApiDriverController extends Controller $type = new BaseStringL11nType(); $type->title = $request->getDataString('name') ?? ''; $type->setL11n( - $request->getDataString('title') ?? '', + $request->getDataString('content') ?? '', ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? ISO639x1Enum::_EN ); @@ -391,7 +391,7 @@ final class ApiDriverController extends Controller { $val = []; if (($val['name'] = !$request->hasData('name')) - || ($val['title'] = !$request->hasData('title')) + || ($val['content'] = !$request->hasData('content')) ) { return $val; } @@ -438,9 +438,9 @@ final class ApiDriverController extends Controller private function createDriverInspectionTypeL11nFromRequest(RequestAbstract $request) : BaseStringL11n { $typeL11n = new BaseStringL11n(); - $typeL11n->ref = $request->getDataInt('type') ?? 0; + $typeL11n->ref = $request->getDataInt('ref') ?? 0; $typeL11n->language = ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? $request->header->l11n->language; - $typeL11n->content = $request->getDataString('title') ?? ''; + $typeL11n->content = $request->getDataString('content') ?? ''; return $typeL11n; } @@ -457,8 +457,8 @@ final class ApiDriverController extends Controller private function validateDriverInspectionTypeL11nCreate(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; } @@ -488,7 +488,7 @@ final class ApiDriverController extends Controller return; } - $request->setData('virtualpath', '/Modules/FleetManagement/Driver/' . $request->getData('id'), true); + $request->setData('virtualpath', '/Modules/FleetManagement/Driver/' . $request->getData('ref'), true); $this->app->moduleManager->get('Editor', 'Api')->apiEditorCreate($request, $response, $data); if ($response->header->status !== RequestStatusCode::R_200) { @@ -501,7 +501,7 @@ final class ApiDriverController extends Controller } $model = $responseData['response']; - $this->createModelRelation($request->header->account, (int) $request->getData('id'), $model->id, DriverMapper::class, 'notes', '', $request->getOrigin()); + $this->createModelRelation($request->header->account, (int) $request->getData('ref'), $model->id, DriverMapper::class, 'notes', '', $request->getOrigin()); } /** @@ -516,7 +516,7 @@ final class ApiDriverController 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/Controller/ApiVehicleController.php b/Controller/ApiVehicleController.php index b85493f..cba78b2 100755 --- a/Controller/ApiVehicleController.php +++ b/Controller/ApiVehicleController.php @@ -254,7 +254,7 @@ final class ApiVehicleController extends Controller $type = new BaseStringL11nType(); $type->title = $request->getDataString('name') ?? ''; $type->setL11n( - $request->getDataString('title') ?? '', + $request->getDataString('content') ?? '', ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? ISO639x1Enum::_EN ); @@ -274,7 +274,7 @@ final class ApiVehicleController extends Controller { $val = []; if (($val['name'] = !$request->hasData('name')) - || ($val['title'] = !$request->hasData('title')) + || ($val['content'] = !$request->hasData('content')) ) { return $val; } @@ -321,9 +321,9 @@ final class ApiVehicleController extends Controller private function createVehicleTypeL11nFromRequest(RequestAbstract $request) : BaseStringL11n { $typeL11n = new BaseStringL11n(); - $typeL11n->ref = $request->getDataInt('type') ?? 0; + $typeL11n->ref = $request->getDataInt('ref') ?? 0; $typeL11n->language = ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? $request->header->l11n->language; - $typeL11n->content = $request->getDataString('title') ?? ''; + $typeL11n->content = $request->getDataString('content') ?? ''; return $typeL11n; } @@ -340,8 +340,8 @@ final class ApiVehicleController extends Controller private function validateVehicleTypeL11nCreate(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; } @@ -391,7 +391,7 @@ final class ApiVehicleController extends Controller $type = new BaseStringL11nType(); $type->title = $request->getDataString('name') ?? ''; $type->setL11n( - $request->getDataString('title') ?? '', + $request->getDataString('content') ?? '', ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? ISO639x1Enum::_EN ); @@ -411,7 +411,7 @@ final class ApiVehicleController extends Controller { $val = []; if (($val['name'] = !$request->hasData('name')) - || ($val['title'] = !$request->hasData('title')) + || ($val['content'] = !$request->hasData('content')) ) { return $val; } @@ -458,9 +458,9 @@ final class ApiVehicleController extends Controller private function createFuelTypeL11nFromRequest(RequestAbstract $request) : BaseStringL11n { $typeL11n = new BaseStringL11n(); - $typeL11n->ref = $request->getDataInt('type') ?? 0; + $typeL11n->ref = $request->getDataInt('ref') ?? 0; $typeL11n->language = ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? $request->header->l11n->language; - $typeL11n->content = $request->getDataString('title') ?? ''; + $typeL11n->content = $request->getDataString('content') ?? ''; return $typeL11n; } @@ -477,8 +477,8 @@ final class ApiVehicleController extends Controller private function validateFuelTypeL11nCreate(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; } @@ -628,7 +628,7 @@ final class ApiVehicleController extends Controller } /** @var \Modules\FleetManagement\Models\Vehicle $vehicle */ - $vehicle = VehicleMapper::get()->where('id', (int) $request->getData('vehicle'))->execute(); + $vehicle = VehicleMapper::get()->where('id', (int) $request->getData('ref'))->execute(); $path = $this->createVehicleDir($vehicle); $uploaded = new NullCollection(); @@ -696,7 +696,7 @@ final class ApiVehicleController extends Controller { $val = []; if (($val['media'] = (!$request->hasData('media') && empty($request->files))) - || ($val['vehicle'] = !$request->hasData('vehicle')) + || ($val['ref'] = !$request->hasData('ref')) ) { return $val; } @@ -746,7 +746,7 @@ final class ApiVehicleController extends Controller $type = new BaseStringL11nType(); $type->title = $request->getDataString('name') ?? ''; $type->setL11n( - $request->getDataString('title') ?? '', + $request->getDataString('content') ?? '', ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? ISO639x1Enum::_EN ); @@ -766,7 +766,7 @@ final class ApiVehicleController extends Controller { $val = []; if (($val['name'] = !$request->hasData('name')) - || ($val['title'] = !$request->hasData('title')) + || ($val['content'] = !$request->hasData('content')) ) { return $val; } @@ -813,9 +813,9 @@ final class ApiVehicleController extends Controller private function createInspectionTypeL11nFromRequest(RequestAbstract $request) : BaseStringL11n { $typeL11n = new BaseStringL11n(); - $typeL11n->ref = $request->getDataInt('type') ?? 0; + $typeL11n->ref = $request->getDataInt('ref') ?? 0; $typeL11n->language = ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? $request->header->l11n->language; - $typeL11n->content = $request->getDataString('title') ?? ''; + $typeL11n->content = $request->getDataString('content') ?? ''; return $typeL11n; } @@ -832,8 +832,8 @@ final class ApiVehicleController extends Controller private function validateInspectionTypeL11nCreate(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; } @@ -863,7 +863,7 @@ final class ApiVehicleController extends Controller return; } - $request->setData('virtualpath', '/Modules/FleetManagement/Vehicle/' . $request->getData('id'), true); + $request->setData('virtualpath', '/Modules/FleetManagement/Vehicle/' . $request->getData('ref'), true); $this->app->moduleManager->get('Editor', 'Api')->apiEditorCreate($request, $response, $data); if ($response->header->status !== RequestStatusCode::R_200) { @@ -876,7 +876,7 @@ final class ApiVehicleController extends Controller } $model = $responseData['response']; - $this->createModelRelation($request->header->account, (int) $request->getData('id'), $model->id, VehicleMapper::class, 'notes', '', $request->getOrigin()); + $this->createModelRelation($request->header->account, (int) $request->getData('ref'), $model->id, VehicleMapper::class, 'notes', '', $request->getOrigin()); } /** @@ -891,7 +891,7 @@ final class ApiVehicleController 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/driver-view.tpl.php b/Theme/Backend/driver-view.tpl.php index c3f816d..712da42 100644 --- a/Theme/Backend/driver-view.tpl.php +++ b/Theme/Backend/driver-view.tpl.php @@ -119,12 +119,12 @@ echo $this->data['nav']->render(); request->uri->fragment === 'c-tab-3' ? ' checked' : ''; ?>>
- data['media-upload']->render('driver-file', 'files', '', $driver->files); ?> + data['media-upload']->render('driver-file', 'files', '', $driver->files, '{/api}fleet/driver/file?csrf={$CSRF}', (string) $driver->id); ?>
request->uri->fragment === 'c-tab-4' ? ' checked' : ''; ?>>
- data['driver-notes']->render('driver-notes', '', $driver->notes); ?> + data['driver-notes']->render('driver-notes', '', $driver->notes, '{/api}fleet/driver/note?csrf={$CSRF}', (string) $driver->id); ?>
request->uri->fragment === 'c-tab-5' ? ' checked' : ''; ?>> diff --git a/Theme/Backend/vehicle-view.tpl.php b/Theme/Backend/vehicle-view.tpl.php index ff9548a..615ad3d 100644 --- a/Theme/Backend/vehicle-view.tpl.php +++ b/Theme/Backend/vehicle-view.tpl.php @@ -164,12 +164,12 @@ echo $this->data['nav']->render(); request->uri->fragment === 'c-tab-3' ? ' checked' : ''; ?>>
- data['media-upload']->render('vehicle-file', 'files', '', $vehicle->files); ?> + data['media-upload']->render('vehicle-file', 'files', '', $vehicle->files, '{/api}fleet/vehicle/file?csrf={$CSRF}', (string) $vehicle->id); ?>
request->uri->fragment === 'c-tab-4' ? ' checked' : ''; ?>>
- data['vehicle-notes']->render('vehicle-notes', '', $vehicle->notes); ?> + data['vehicle-notes']->render('vehicle-notes', '', $vehicle->notes, '{/api}fleet/vehicle/note?csrf={$CSRF}', (string) $vehicle->id); ?>
request->uri->fragment === 'c-tab-5' ? ' checked' : ''; ?>> diff --git a/tests/Controller/Api/ApiControllerAttributeTrait.php b/tests/Controller/Api/ApiControllerAttributeTrait.php index 29209c8..090b730 100644 --- a/tests/Controller/Api/ApiControllerAttributeTrait.php +++ b/tests/Controller/Api/ApiControllerAttributeTrait.php @@ -52,8 +52,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->apiVehicleAttributeTypeL11nCreate($request, $response);