From 30d0aaf2ce91d53bfb5f3a5e182814b60dba84ca Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Fri, 26 Jan 2024 22:53:59 +0000 Subject: [PATCH] auto fixes + some impl. --- Admin/Install/db.json | 10 + Admin/Installer.php | 37 +- Admin/Routes/Web/Api.php | 10 +- Admin/Routes/Web/Backend.php | 34 +- Controller/ApiDriverAttributeController.php | 16 +- Controller/ApiDriverController.php | 19 +- Controller/ApiVehicleAttributeController.php | 16 +- Controller/ApiVehicleController.php | 49 +-- Controller/BackendController.php | 54 +-- Models/Attribute/DriverAttributeMapper.php | 8 +- .../Attribute/DriverAttributeTypeMapper.php | 3 +- .../DriverAttributeValueL11nMapper.php | 8 +- .../Attribute/DriverAttributeValueMapper.php | 18 +- Models/Attribute/VehicleAttributeMapper.php | 8 +- .../Attribute/VehicleAttributeTypeMapper.php | 3 +- .../VehicleAttributeValueL11nMapper.php | 8 +- .../Attribute/VehicleAttributeValueMapper.php | 18 +- Models/Cost.php | 2 +- Models/CostType.php | 2 +- Models/Driver/Driver.php | 4 +- Models/Driver/DriverInspectionMapper.php | 2 +- .../Driver/DriverInspectionTypeL11nMapper.php | 2 +- Models/Driver/DriverMapper.php | 8 +- Models/FuelTypeL11nMapper.php | 2 +- Models/Inspection.php | 2 +- Models/InspectionMapper.php | 2 +- Models/InspectionTypeL11nMapper.php | 2 +- Models/License.php | 2 +- Models/LicenseType.php | 2 +- Models/Milage.php | 2 +- Models/MilageMapper.php | 20 +- Models/Vehicle.php | 2 +- Models/VehicleMapper.php | 28 +- Models/VehicleTypeL11nMapper.php | 2 +- Models/VehicleTypeMapper.php | 4 +- Theme/Backend/Lang/de.lang.php | 62 +-- Theme/Backend/Lang/en.lang.php | 62 +-- Theme/Backend/Lang/no.lang.php | 56 +-- Theme/Backend/Lang/pl.lang.php | 56 +-- Theme/Backend/Lang/pt.lang.php | 56 +-- Theme/Backend/Lang/ru.lang.php | 56 +-- Theme/Backend/Lang/sv.lang.php | 56 +-- Theme/Backend/Lang/th.lang.php | 56 +-- Theme/Backend/Lang/tr.lang.php | 56 +-- Theme/Backend/Lang/uk.lang.php | 56 +-- Theme/Backend/Lang/zh.lang.php | 56 +-- Theme/Backend/attribute-type.tpl.php | 2 +- Theme/Backend/driver-list.tpl.php | 28 +- Theme/Backend/driver-profile.tpl.php | 16 +- Theme/Backend/driver-view.tpl.php | 326 +++++++++++++++ Theme/Backend/vehicle-list.tpl.php | 36 +- Theme/Backend/vehicle-profile.tpl.php | 12 +- Theme/Backend/vehicle-view.tpl.php | 385 ++++++++++++++++++ tests/Autoloader.php | 4 +- tests/Bootstrap.php | 71 ++-- .../Api/ApiControllerAttributeTrait.php | 23 +- .../Api/ApiControllerVehicleTrait.php | 3 +- tests/Controller/ApiControllerTest.php | 14 +- 58 files changed, 1351 insertions(+), 606 deletions(-) create mode 100644 Theme/Backend/driver-view.tpl.php create mode 100644 Theme/Backend/vehicle-view.tpl.php diff --git a/Admin/Install/db.json b/Admin/Install/db.json index d5e4075..fa9707b 100755 --- a/Admin/Install/db.json +++ b/Admin/Install/db.json @@ -458,6 +458,11 @@ "type": "TINYINT(1)", "null": false }, + "fleetmgmt_vehicle_attr_type_internal": { + "name": "fleetmgmt_vehicle_attr_type_internal", + "type": "TINYINT(1)", + "null": false + }, "fleetmgmt_vehicle_attr_type_required": { "description": "Every vehicle must have this attribute type if set to true.", "name": "fleetmgmt_vehicle_attr_type_required", @@ -744,6 +749,11 @@ "type": "TINYINT(1)", "null": false }, + "fleetmgmt_driver_attr_type_internal": { + "name": "fleetmgmt_driver_attr_type_internal", + "type": "TINYINT(1)", + "null": false + }, "fleetmgmt_driver_attr_type_required": { "description": "Every driver must have this attribute type if set to true.", "name": "fleetmgmt_driver_attr_type_required", diff --git a/Admin/Installer.php b/Admin/Installer.php index 5923f31..597acd4 100755 --- a/Admin/Installer.php +++ b/Admin/Installer.php @@ -20,7 +20,6 @@ use phpOMS\Message\Http\HttpRequest; use phpOMS\Message\Http\HttpResponse; use phpOMS\Module\InstallerAbstract; use phpOMS\Module\ModuleInfo; -use phpOMS\Uri\HttpUri; /** * Installer class. @@ -131,7 +130,7 @@ final class Installer extends InstallerAbstract /** @var array $type */ foreach ($types as $type) { $response = new HttpResponse(); - $request = new HttpRequest(new HttpUri('')); + $request = new HttpRequest(); $request->header->account = 1; $request->setData('name', $type['name'] ?? ''); @@ -157,7 +156,7 @@ final class Installer extends InstallerAbstract } $response = new HttpResponse(); - $request = new HttpRequest(new HttpUri('')); + $request = new HttpRequest(); $request->header->account = 1; $request->setData('title', $l11n); @@ -192,7 +191,7 @@ final class Installer extends InstallerAbstract /** @var array $type */ foreach ($types as $type) { $response = new HttpResponse(); - $request = new HttpRequest(new HttpUri('')); + $request = new HttpRequest(); $request->header->account = 1; $request->setData('name', $type['name'] ?? ''); @@ -218,7 +217,7 @@ final class Installer extends InstallerAbstract } $response = new HttpResponse(); - $request = new HttpRequest(new HttpUri('')); + $request = new HttpRequest(); $request->header->account = 1; $request->setData('title', $l11n); @@ -253,7 +252,7 @@ final class Installer extends InstallerAbstract /** @var array $type */ foreach ($types as $type) { $response = new HttpResponse(); - $request = new HttpRequest(new HttpUri('')); + $request = new HttpRequest(); $request->header->account = 1; $request->setData('name', $type['name'] ?? ''); @@ -279,7 +278,7 @@ final class Installer extends InstallerAbstract } $response = new HttpResponse(); - $request = new HttpRequest(new HttpUri('')); + $request = new HttpRequest(); $request->header->account = 1; $request->setData('title', $l11n); @@ -314,7 +313,7 @@ final class Installer extends InstallerAbstract /** @var array $type */ foreach ($types as $type) { $response = new HttpResponse(); - $request = new HttpRequest(new HttpUri('')); + $request = new HttpRequest(); $request->header->account = 1; $request->setData('name', $type['name'] ?? ''); @@ -340,7 +339,7 @@ final class Installer extends InstallerAbstract } $response = new HttpResponse(); - $request = new HttpRequest(new HttpUri('')); + $request = new HttpRequest(); $request->header->account = 1; $request->setData('title', $l11n); @@ -375,12 +374,14 @@ final class Installer extends InstallerAbstract /** @var array $attribute */ foreach ($attributes as $attribute) { $response = new HttpResponse(); - $request = new HttpRequest(new HttpUri('')); + $request = new HttpRequest(); $request->header->account = 1; $request->setData('name', $attribute['name'] ?? ''); $request->setData('title', \reset($attribute['l11n'])); $request->setData('language', \array_keys($attribute['l11n'])[0] ?? 'en'); + $request->setData('repeatable', $attribute['repeatable'] ?? false); + $request->setData('internal', $attribute['internal'] ?? false); $request->setData('is_required', $attribute['is_required'] ?? false); $request->setData('custom', $attribute['is_custom_allowed'] ?? false); $request->setData('validation_pattern', $attribute['validation_pattern'] ?? ''); @@ -405,7 +406,7 @@ final class Installer extends InstallerAbstract } $response = new HttpResponse(); - $request = new HttpRequest(new HttpUri('')); + $request = new HttpRequest(); $request->header->account = 1; $request->setData('title', $l11n); @@ -444,7 +445,7 @@ final class Installer extends InstallerAbstract /** @var array $value */ foreach ($attribute['values'] as $value) { $response = new HttpResponse(); - $request = new HttpRequest(new HttpUri('')); + $request = new HttpRequest(); $request->header->account = 1; $request->setData('value', $value['value'] ?? ''); @@ -478,7 +479,7 @@ final class Installer extends InstallerAbstract } $response = new HttpResponse(); - $request = new HttpRequest(new HttpUri('')); + $request = new HttpRequest(); $request->header->account = 1; $request->setData('title', $l11n); @@ -514,12 +515,14 @@ final class Installer extends InstallerAbstract /** @var array $attribute */ foreach ($attributes as $attribute) { $response = new HttpResponse(); - $request = new HttpRequest(new HttpUri('')); + $request = new HttpRequest(); $request->header->account = 1; $request->setData('name', $attribute['name'] ?? ''); $request->setData('title', \reset($attribute['l11n'])); $request->setData('language', \array_keys($attribute['l11n'])[0] ?? 'en'); + $request->setData('repeatable', $attribute['repeatable'] ?? false); + $request->setData('internal', $attribute['internal'] ?? false); $request->setData('is_required', $attribute['is_required'] ?? false); $request->setData('custom', $attribute['is_custom_allowed'] ?? false); $request->setData('validation_pattern', $attribute['validation_pattern'] ?? ''); @@ -544,7 +547,7 @@ final class Installer extends InstallerAbstract } $response = new HttpResponse(); - $request = new HttpRequest(new HttpUri('')); + $request = new HttpRequest(); $request->header->account = 1; $request->setData('title', $l11n); @@ -583,7 +586,7 @@ final class Installer extends InstallerAbstract /** @var array $value */ foreach ($attribute['values'] as $value) { $response = new HttpResponse(); - $request = new HttpRequest(new HttpUri('')); + $request = new HttpRequest(); $request->header->account = 1; $request->setData('value', $value['value'] ?? ''); @@ -617,7 +620,7 @@ final class Installer extends InstallerAbstract } $response = new HttpResponse(); - $request = new HttpRequest(new HttpUri('')); + $request = new HttpRequest(); $request->header->account = 1; $request->setData('title', $l11n); diff --git a/Admin/Routes/Web/Api.php b/Admin/Routes/Web/Api.php index f01c3b2..427047e 100644 --- a/Admin/Routes/Web/Api.php +++ b/Admin/Routes/Web/Api.php @@ -18,7 +18,7 @@ use phpOMS\Account\PermissionType; use phpOMS\Router\RouteVerb; return [ - '^.*/fleet/vehicle/find.*$' => [ + '^.*/fleet/vehicle/find(\?.*$|$)' => [ [ 'dest' => '\Modules\FleetManagement\Controller\ApiVehicleController:apiVehicleFind', 'verb' => RouteVerb::GET, @@ -30,7 +30,7 @@ return [ ], ], - '^.*/fleet/vehicle/attribute.*$' => [ + '^.*/fleet/vehicle/attribute(\?.*$|$)' => [ [ 'dest' => '\Modules\FleetManagement\Controller\ApiVehicleAttributeController:apiVehicleAttributeCreate', 'verb' => RouteVerb::PUT, @@ -51,7 +51,7 @@ return [ ], ], - '^.*/fleet/driver/attribute.*$' => [ + '^.*/fleet/driver/attribute(\?.*$|$)' => [ [ 'dest' => '\Modules\FleetManagement\Controller\ApiDriverAttributeController:apiDriverAttributeCreate', 'verb' => RouteVerb::PUT, @@ -72,7 +72,7 @@ return [ ], ], - '^.*/fleet/vehicle/note.*$' => [ + '^.*/fleet/vehicle/note(\?.*$|$)' => [ [ 'dest' => '\Modules\FleetManagement\Controller\ApiVehicleController:apiNoteCreate', 'verb' => RouteVerb::PUT, @@ -93,7 +93,7 @@ return [ ], ], - '^.*/fleet/driver/note.*$' => [ + '^.*/fleet/driver/note(\?.*$|$)' => [ [ 'dest' => '\Modules\FleetManagement\Controller\ApiDriverController:apiNoteCreate', 'verb' => RouteVerb::PUT, diff --git a/Admin/Routes/Web/Backend.php b/Admin/Routes/Web/Backend.php index 08bf0dc..1fbe830 100755 --- a/Admin/Routes/Web/Backend.php +++ b/Admin/Routes/Web/Backend.php @@ -18,7 +18,7 @@ use phpOMS\Account\PermissionType; use phpOMS\Router\RouteVerb; return [ - '^.*/fleet/vehicle/attribute/type/list.*$' => [ + '^.*/fleet/vehicle/attribute/type/list(\?.*$|$)' => [ [ 'dest' => '\Modules\FleetManagement\Controller\BackendController:viewFleetManagementAttributeTypeList', 'verb' => RouteVerb::GET, @@ -29,7 +29,7 @@ return [ ], ], ], - '^.*/fleet/vehicle/attribute/type\?.*$' => [ + '^.*/fleet/vehicle/attribute/type(\?.*$|$)' => [ [ 'dest' => '\Modules\FleetManagement\Controller\BackendController:viewFleetManagementAttributeType', 'verb' => RouteVerb::GET, @@ -41,7 +41,7 @@ return [ ], ], - '^.*/fleet/vehicle/list.*$' => [ + '^.*/fleet/vehicle/list(\?.*$|$)' => [ [ 'dest' => '\Modules\FleetManagement\Controller\BackendController:viewFleetManagementVehicleList', 'verb' => RouteVerb::GET, @@ -52,7 +52,7 @@ return [ ], ], ], - '^.*/fleet/vehicle/create.*$' => [ + '^.*/fleet/vehicle/create(\?.*$|$)' => [ [ 'dest' => '\Modules\FleetManagement\Controller\BackendController:viewFleetManagementVehicleCreate', 'verb' => RouteVerb::GET, @@ -63,9 +63,9 @@ return [ ], ], ], - '^.*/fleet/vehicle/profile.*$' => [ + '^.*/fleet/vehicle/view(\?.*$|$)' => [ [ - 'dest' => '\Modules\FleetManagement\Controller\BackendController:viewFleetManagementVehicleProfile', + 'dest' => '\Modules\FleetManagement\Controller\BackendController:viewFleetManagementVehicleView', 'verb' => RouteVerb::GET, 'permission' => [ 'module' => BackendController::NAME, @@ -75,7 +75,7 @@ return [ ], ], - '^.*/fleet/driver/attribute/type/list.*$' => [ + '^.*/fleet/driver/attribute/type/list(\?.*$|$)' => [ [ 'dest' => '\Modules\FleetManagement\Controller\BackendController:viewFleetManagementDriverAttributeTypeList', 'verb' => RouteVerb::GET, @@ -86,7 +86,7 @@ return [ ], ], ], - '^.*/fleet/driver/attribute/type\?.*$' => [ + '^.*/fleet/driver/attribute/type(\?.*$|$)' => [ [ 'dest' => '\Modules\FleetManagement\Controller\BackendController:viewFleetManagementDriverAttributeType', 'verb' => RouteVerb::GET, @@ -98,7 +98,7 @@ return [ ], ], - '^.*/fleet/driver/list.*$' => [ + '^.*/fleet/driver/list(\?.*$|$)' => [ [ 'dest' => '\Modules\FleetManagement\Controller\BackendController:viewFleetManagementDriverList', 'verb' => RouteVerb::GET, @@ -109,7 +109,7 @@ return [ ], ], ], - '^.*/fleet/driver/create.*$' => [ + '^.*/fleet/driver/create(\?.*$|$)' => [ [ 'dest' => '\Modules\FleetManagement\Controller\BackendController:viewFleetManagementDriverCreate', 'verb' => RouteVerb::GET, @@ -120,9 +120,9 @@ return [ ], ], ], - '^.*/fleet/driver/profile.*$' => [ + '^.*/fleet/driver/view(\?.*$|$)' => [ [ - 'dest' => '\Modules\FleetManagement\Controller\BackendController:viewFleetManagementDriverProfile', + 'dest' => '\Modules\FleetManagement\Controller\BackendController:viewFleetManagementDriverView', 'verb' => RouteVerb::GET, 'permission' => [ 'module' => BackendController::NAME, @@ -132,7 +132,7 @@ return [ ], ], - '^.*/fleet/inspection/list.*$' => [ + '^.*/fleet/inspection/list(\?.*$|$)' => [ [ 'dest' => '\Modules\FleetManagement\Controller\BackendController:viewFleetManagementInspectionList', 'verb' => RouteVerb::GET, @@ -143,7 +143,7 @@ return [ ], ], ], - '^.*/fleet/inspection/type/list.*$' => [ + '^.*/fleet/inspection/type/list(\?.*$|$)' => [ [ 'dest' => '\Modules\FleetManagement\Controller\BackendController:viewFleetManagementInspectionTypeList', 'verb' => RouteVerb::GET, @@ -154,7 +154,7 @@ return [ ], ], ], - '^.*/fleet/inspection/create.*$' => [ + '^.*/fleet/inspection/create(\?.*$|$)' => [ [ 'dest' => '\Modules\FleetManagement\Controller\BackendController:viewFleetManagementInspectionCreate', 'verb' => RouteVerb::GET, @@ -165,9 +165,9 @@ return [ ], ], ], - '^.*/fleet/inspection/profile.*$' => [ + '^.*/fleet/inspection/view(\?.*$|$)' => [ [ - 'dest' => '\Modules\FleetManagement\Controller\BackendController:viewFleetManagementInspectionProfile', + 'dest' => '\Modules\FleetManagement\Controller\BackendController:viewFleetManagementInspectionView', 'verb' => RouteVerb::GET, 'permission' => [ 'module' => BackendController::NAME, diff --git a/Controller/ApiDriverAttributeController.php b/Controller/ApiDriverAttributeController.php index f03190d..7478008 100644 --- a/Controller/ApiDriverAttributeController.php +++ b/Controller/ApiDriverAttributeController.php @@ -61,12 +61,15 @@ final class ApiDriverAttributeController extends Controller return; } - $type = DriverAttributeTypeMapper::get()->with('defaults')->where('id', (int) $request->getData('type'))->execute(); + $type = DriverAttributeTypeMapper::get() + ->with('defaults') + ->where('id', (int) $request->getData('type')) + ->execute(); if (!$type->repeatable) { $attr = DriverAttributeMapper::count() ->with('type') - ->where('type/id', (int) $request->getData('type')) + ->where('type/id', $type->id) ->where('ref', (int) $request->getData('ref')) ->execute(); @@ -164,13 +167,20 @@ final class ApiDriverAttributeController extends Controller ->where('id', $request->getDataInt('type') ?? 0) ->execute(); + if ($type->isInternal) { + $response->header->status = RequestStatusCode::R_403; + $this->createInvalidCreateResponse($request, $response, $val); + + return; + } + $attrValue = $this->createAttributeValueFromRequest($request, $type); $this->createModel($request->header->account, $attrValue, DriverAttributeValueMapper::class, 'attr_value', $request->getOrigin()); if ($attrValue->isDefault) { $this->createModelRelation( $request->header->account, - (int) $request->getData('type'), + $type->id, $attrValue->id, DriverAttributeTypeMapper::class, 'defaults', '', $request->getOrigin() ); diff --git a/Controller/ApiDriverController.php b/Controller/ApiDriverController.php index 7bf2352..300c54c 100644 --- a/Controller/ApiDriverController.php +++ b/Controller/ApiDriverController.php @@ -92,7 +92,7 @@ final class ApiDriverController extends Controller $inspection = new Inspection(); $inspection->reference = (int) $request->getData('ref'); $inspection->description = $request->getDataString('description') ?? ''; - $inspection->status = $request->getDataInt('status') ?? InspectionStatus::TODO; + $inspection->status = InspectionStatus::tryFromValue($request->getDataInt('status')) ?? InspectionStatus::TODO; $inspection->next = $request->getDataDateTime('next') ?? null; $inspection->date = $request->getDataDateTime('date') ?? null; $inspection->interval = $request->getDataInt('interval') ?? 0; @@ -168,7 +168,7 @@ final class ApiDriverController extends Controller { $driver = new Driver(); $driver->account = new NullAccount($request->getDataInt('account') ?? 1); - $driver->status = $request->getDataInt('status') ?? DriverStatus::INACTIVE; + $driver->status = DriverStatus::tryFromValue($request->getDataInt('status')) ?? DriverStatus::INACTIVE; return $driver; } @@ -493,7 +493,10 @@ final class ApiDriverController extends Controller { $type = new BaseStringL11nType(); $type->title = $request->getDataString('name') ?? ''; - $type->setL11n($request->getDataString('title') ?? '', $request->getDataString('language') ?? ISO639x1Enum::_EN); + $type->setL11n( + $request->getDataString('title') ?? '', + ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? ISO639x1Enum::_EN + ); return $type; } @@ -557,12 +560,10 @@ final class ApiDriverController extends Controller */ private function createDriverInspectionTypeL11nFromRequest(RequestAbstract $request) : BaseStringL11n { - $typeL11n = new BaseStringL11n(); - $typeL11n->ref = $request->getDataInt('type') ?? 0; - $typeL11n->setLanguage( - $request->getDataString('language') ?? $request->header->l11n->language - ); - $typeL11n->content = $request->getDataString('title') ?? ''; + $typeL11n = new BaseStringL11n(); + $typeL11n->ref = $request->getDataInt('type') ?? 0; + $typeL11n->language = ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? $request->header->l11n->language; + $typeL11n->content = $request->getDataString('title') ?? ''; return $typeL11n; } diff --git a/Controller/ApiVehicleAttributeController.php b/Controller/ApiVehicleAttributeController.php index 47c4ad0..e6f2dda 100644 --- a/Controller/ApiVehicleAttributeController.php +++ b/Controller/ApiVehicleAttributeController.php @@ -61,12 +61,15 @@ final class ApiVehicleAttributeController extends Controller return; } - $type = VehicleAttributeTypeMapper::get()->with('defaults')->where('id', (int) $request->getData('type'))->execute(); + $type = VehicleAttributeTypeMapper::get() + ->with('defaults') + ->where('id', (int) $request->getData('type')) + ->execute(); if (!$type->repeatable) { $attr = VehicleAttributeMapper::count() ->with('type') - ->where('type/id', (int) $request->getData('type')) + ->where('type/id', $type->id) ->where('ref', (int) $request->getData('ref')) ->execute(); @@ -164,13 +167,20 @@ final class ApiVehicleAttributeController extends Controller ->where('id', $request->getDataInt('type') ?? 0) ->execute(); + if ($type->isInternal) { + $response->header->status = RequestStatusCode::R_403; + $this->createInvalidCreateResponse($request, $response, $val); + + return; + } + $attrValue = $this->createAttributeValueFromRequest($request, $type); $this->createModel($request->header->account, $attrValue, VehicleAttributeValueMapper::class, 'attr_value', $request->getOrigin()); if ($attrValue->isDefault) { $this->createModelRelation( $request->header->account, - (int) $request->getData('type'), + $type->id, $attrValue->id, VehicleAttributeTypeMapper::class, 'defaults', '', $request->getOrigin() ); diff --git a/Controller/ApiVehicleController.php b/Controller/ApiVehicleController.php index 66073f6..4ea096d 100755 --- a/Controller/ApiVehicleController.php +++ b/Controller/ApiVehicleController.php @@ -189,7 +189,7 @@ final class ApiVehicleController extends Controller $inspection = new Inspection(); $inspection->reference = (int) $request->getData('ref'); $inspection->description = $request->getDataString('description') ?? ''; - $inspection->status = $request->getDataInt('status') ?? InspectionStatus::TODO; + $inspection->status = InspectionStatus::tryFromValue($request->getDataInt('status')) ?? InspectionStatus::TODO; $inspection->next = $request->getDataDateTime('next') ?? null; $inspection->date = $request->getDataDateTime('date') ?? null; $inspection->interval = $request->getDataInt('interval') ?? 0; @@ -258,7 +258,10 @@ final class ApiVehicleController extends Controller { $type = new BaseStringL11nType(); $type->title = $request->getDataString('name') ?? ''; - $type->setL11n($request->getDataString('title') ?? '', $request->getDataString('language') ?? ISO639x1Enum::_EN); + $type->setL11n( + $request->getDataString('title') ?? '', + ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? ISO639x1Enum::_EN + ); return $type; } @@ -322,12 +325,10 @@ final class ApiVehicleController extends Controller */ private function createVehicleTypeL11nFromRequest(RequestAbstract $request) : BaseStringL11n { - $typeL11n = new BaseStringL11n(); - $typeL11n->ref = $request->getDataInt('type') ?? 0; - $typeL11n->setLanguage( - $request->getDataString('language') ?? $request->header->l11n->language - ); - $typeL11n->content = $request->getDataString('title') ?? ''; + $typeL11n = new BaseStringL11n(); + $typeL11n->ref = $request->getDataInt('type') ?? 0; + $typeL11n->language = ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? $request->header->l11n->language; + $typeL11n->content = $request->getDataString('title') ?? ''; return $typeL11n; } @@ -394,7 +395,10 @@ final class ApiVehicleController extends Controller { $type = new BaseStringL11nType(); $type->title = $request->getDataString('name') ?? ''; - $type->setL11n($request->getDataString('title') ?? '', $request->getDataString('language') ?? ISO639x1Enum::_EN); + $type->setL11n( + $request->getDataString('title') ?? '', + ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? ISO639x1Enum::_EN + ); return $type; } @@ -458,12 +462,10 @@ final class ApiVehicleController extends Controller */ private function createFuelTypeL11nFromRequest(RequestAbstract $request) : BaseStringL11n { - $typeL11n = new BaseStringL11n(); - $typeL11n->ref = $request->getDataInt('type') ?? 0; - $typeL11n->setLanguage( - $request->getDataString('language') ?? $request->header->l11n->language - ); - $typeL11n->content = $request->getDataString('title') ?? ''; + $typeL11n = new BaseStringL11n(); + $typeL11n->ref = $request->getDataInt('type') ?? 0; + $typeL11n->language = ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? $request->header->l11n->language; + $typeL11n->content = $request->getDataString('title') ?? ''; return $typeL11n; } @@ -540,7 +542,7 @@ final class ApiVehicleController extends Controller $vehicle->info = $request->getDataString('info') ?? ''; $vehicle->type = new NullBaseStringL11nType((int) ($request->getDataInt('type') ?? 0)); $vehicle->fuelType = new NullBaseStringL11nType((int) ($request->getDataInt('fuel') ?? 0)); - $vehicle->status = $request->getDataInt('status') ?? VehicleStatus::INACTIVE; + $vehicle->status = VehicleStatus::tryFromValue($request->getDataInt('status')) ?? VehicleStatus::INACTIVE; $vehicle->unit = $request->getDataInt('unit') ?? $this->app->unitId; return $vehicle; @@ -867,7 +869,10 @@ final class ApiVehicleController extends Controller { $type = new BaseStringL11nType(); $type->title = $request->getDataString('name') ?? ''; - $type->setL11n($request->getDataString('title') ?? '', $request->getDataString('language') ?? ISO639x1Enum::_EN); + $type->setL11n( + $request->getDataString('title') ?? '', + ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? ISO639x1Enum::_EN + ); return $type; } @@ -931,12 +936,10 @@ final class ApiVehicleController extends Controller */ private function createInspectionTypeL11nFromRequest(RequestAbstract $request) : BaseStringL11n { - $typeL11n = new BaseStringL11n(); - $typeL11n->ref = $request->getDataInt('type') ?? 0; - $typeL11n->setLanguage( - $request->getDataString('language') ?? $request->header->l11n->language - ); - $typeL11n->content = $request->getDataString('title') ?? ''; + $typeL11n = new BaseStringL11n(); + $typeL11n->ref = $request->getDataInt('type') ?? 0; + $typeL11n->language = ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? $request->header->l11n->language; + $typeL11n->content = $request->getDataString('title') ?? ''; return $typeL11n; } diff --git a/Controller/BackendController.php b/Controller/BackendController.php index e1e34cf..7c9ad31 100755 --- a/Controller/BackendController.php +++ b/Controller/BackendController.php @@ -14,8 +14,6 @@ declare(strict_types=1); namespace Modules\FleetManagement\Controller; -use Modules\Admin\Models\LocalizationMapper; -use Modules\Admin\Models\SettingsEnum; use Modules\FleetManagement\Models\Attribute\DriverAttributeTypeMapper; use Modules\FleetManagement\Models\Attribute\VehicleAttributeTypeL11nMapper; use Modules\FleetManagement\Models\Attribute\VehicleAttributeTypeMapper; @@ -332,14 +330,11 @@ final class BackendController extends Controller { $view = new View($this->app->l11nManager, $request, $response); - $view->setTemplate('/Modules/FleetManagement/Theme/Backend/vehicle-profile'); + $view->setTemplate('/Modules/FleetManagement/Theme/Backend/vehicle-view'); $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1003502001, $request, $response); - /** @var \Model\Setting $settings */ - $settings = $this->app->appSettings->get(null, SettingsEnum::DEFAULT_LOCALIZATION); - - $view->data['attributeView'] = new \Modules\Attribute\Theme\Backend\Components\AttributeView($this->app->l11nManager, $request, $response); - $view->data['attributeView']->data['default_localization'] = LocalizationMapper::get()->where('id', (int) $settings->id)->execute(); + $view->data['attributeView'] = new \Modules\Attribute\Theme\Backend\Components\AttributeView($this->app->l11nManager, $request, $response); + $view->data['attributeView']->data['default_localization'] = $this->app->l11nServer; $view->data['media-upload'] = new \Modules\Media\Theme\Backend\Components\Upload\BaseView($this->app->l11nManager, $request, $response); $view->data['vehicle-notes'] = new \Modules\Editor\Theme\Backend\Components\Compound\BaseView($this->app->l11nManager, $request, $response); @@ -363,17 +358,14 @@ final class BackendController extends Controller { $view = new View($this->app->l11nManager, $request, $response); - $view->setTemplate('/Modules/FleetManagement/Theme/Backend/vehicle-profile'); + $view->setTemplate('/Modules/FleetManagement/Theme/Backend/driver-view'); $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1003502001, $request, $response); - /** @var \Model\Setting $settings */ - $settings = $this->app->appSettings->get(null, SettingsEnum::DEFAULT_LOCALIZATION); + $view->data['attributeView'] = new \Modules\Attribute\Theme\Backend\Components\AttributeView($this->app->l11nManager, $request, $response); + $view->data['attributeView']->data['default_localization'] = $this->app->l11nServer; - $view->data['attributeView'] = new \Modules\Attribute\Theme\Backend\Components\AttributeView($this->app->l11nManager, $request, $response); - $view->data['attributeView']->data['default_localization'] = LocalizationMapper::get()->where('id', (int) $settings->id)->execute(); - - $view->data['media-upload'] = new \Modules\Media\Theme\Backend\Components\Upload\BaseView($this->app->l11nManager, $request, $response); - $view->data['vehicle-notes'] = new \Modules\Editor\Theme\Backend\Components\Compound\BaseView($this->app->l11nManager, $request, $response); + $view->data['media-upload'] = new \Modules\Media\Theme\Backend\Components\Upload\BaseView($this->app->l11nManager, $request, $response); + $view->data['driver-notes'] = new \Modules\Editor\Theme\Backend\Components\Compound\BaseView($this->app->l11nManager, $request, $response); return $view; } @@ -390,11 +382,11 @@ final class BackendController extends Controller * @since 1.0.0 * @codeCoverageIgnore */ - public function viewFleetManagementInspectionProfile(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface + public function viewFleetManagementInspectionView(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface { $view = new View($this->app->l11nManager, $request, $response); - $view->setTemplate('/Modules/FleetManagement/Theme/Backend/inspection-profile'); + $view->setTemplate('/Modules/FleetManagement/Theme/Backend/inspection-view'); $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1003502001, $request, $response); return $view; @@ -412,11 +404,11 @@ final class BackendController extends Controller * @since 1.0.0 * @codeCoverageIgnore */ - public function viewFleetManagementVehicleProfile(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface + public function viewFleetManagementVehicleView(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface { $view = new View($this->app->l11nManager, $request, $response); - $view->setTemplate('/Modules/FleetManagement/Theme/Backend/vehicle-profile'); + $view->setTemplate('/Modules/FleetManagement/Theme/Backend/vehicle-view'); $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1003502001, $request, $response); // @todo This language filtering doesn't work. But it was working with the old mappers. Maybe there is a bug in the where() definition. Need to inspect the actual query. @@ -425,6 +417,7 @@ final class BackendController extends Controller ->with('attributes/type') ->with('attributes/value') ->with('attributes/type/l11n') + //->with('attributes/value/l11n') ->with('files') ->with('files/types') ->with('type') @@ -435,6 +428,7 @@ final class BackendController extends Controller ->where('type/l11n/language', $response->header->l11n->language) ->where('fuelType/l11n/language', $response->header->l11n->language) ->where('attributes/type/l11n/language', $response->header->l11n->language) + //->where('attributes/value/l11n/language', $response->header->l11n->language) ->execute(); $view->data['vehicle'] = $vehicle; @@ -482,11 +476,8 @@ final class BackendController extends Controller $view->data['units'] = $units; - /** @var \Model\Setting $settings */ - $settings = $this->app->appSettings->get(null, SettingsEnum::DEFAULT_LOCALIZATION); - - $view->data['attributeView'] = new \Modules\Attribute\Theme\Backend\Components\AttributeView($this->app->l11nManager, $request, $response); - $view->data['attributeView']->data['default_localization'] = LocalizationMapper::get()->where('id', (int) $settings->id)->execute(); + $view->data['attributeView'] = new \Modules\Attribute\Theme\Backend\Components\AttributeView($this->app->l11nManager, $request, $response); + $view->data['attributeView']->data['default_localization'] = $this->app->l11nServer; $view->data['media-upload'] = new \Modules\Media\Theme\Backend\Components\Upload\BaseView($this->app->l11nManager, $request, $response); $view->data['vehicle-notes'] = new \Modules\Editor\Theme\Backend\Components\Compound\BaseView($this->app->l11nManager, $request, $response); @@ -506,11 +497,11 @@ final class BackendController extends Controller * @since 1.0.0 * @codeCoverageIgnore */ - public function viewFleetManagementDriverProfile(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface + public function viewFleetManagementDriverView(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface { $view = new View($this->app->l11nManager, $request, $response); - $view->setTemplate('/Modules/FleetManagement/Theme/Backend/driver-profile'); + $view->setTemplate('/Modules/FleetManagement/Theme/Backend/driver-view'); $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1003502001, $request, $response); // @todo This language filtering doesn't work. But it was working with the old mappers. Maybe there is a bug in the where() definition. Need to inspect the actual query. @@ -519,10 +510,12 @@ final class BackendController extends Controller ->with('attributes/type') ->with('attributes/value') ->with('attributes/type/l11n') + //->with('attributes/value/l11n') ->with('files') ->with('files/types') ->where('id', (int) $request->getData('id')) ->where('attributes/type/l11n/language', $response->header->l11n->language) + //->where('attributes/value/l11n/language', $response->header->l11n->language) ->execute(); $view->data['driver'] = $driver; @@ -558,11 +551,8 @@ final class BackendController extends Controller $view->data['driverImage'] = $driverImage; - /** @var \Model\Setting $settings */ - $settings = $this->app->appSettings->get(null, SettingsEnum::DEFAULT_LOCALIZATION); - - $view->data['attributeView'] = new \Modules\Attribute\Theme\Backend\Components\AttributeView($this->app->l11nManager, $request, $response); - $view->data['attributeView']->data['default_localization'] = LocalizationMapper::get()->where('id', (int) $settings->id)->execute(); + $view->data['attributeView'] = new \Modules\Attribute\Theme\Backend\Components\AttributeView($this->app->l11nManager, $request, $response); + $view->data['attributeView']->data['default_localization'] = $this->app->l11nServer; $view->data['media-upload'] = new \Modules\Media\Theme\Backend\Components\Upload\BaseView($this->app->l11nManager, $request, $response); $view->data['driver-notes'] = new \Modules\Editor\Theme\Backend\Components\Compound\BaseView($this->app->l11nManager, $request, $response); diff --git a/Models/Attribute/DriverAttributeMapper.php b/Models/Attribute/DriverAttributeMapper.php index 3443ea3..52e3071 100644 --- a/Models/Attribute/DriverAttributeMapper.php +++ b/Models/Attribute/DriverAttributeMapper.php @@ -37,10 +37,10 @@ final class DriverAttributeMapper extends DataMapperFactory * @since 1.0.0 */ public const COLUMNS = [ - 'fleetmgmt_driver_attr_id' => ['name' => 'fleetmgmt_driver_attr_id', 'type' => 'int', 'internal' => 'id'], - 'fleetmgmt_driver_attr_driver' => ['name' => 'fleetmgmt_driver_attr_driver', 'type' => 'int', 'internal' => 'ref'], - 'fleetmgmt_driver_attr_type' => ['name' => 'fleetmgmt_driver_attr_type', 'type' => 'int', 'internal' => 'type'], - 'fleetmgmt_driver_attr_value' => ['name' => 'fleetmgmt_driver_attr_value', 'type' => 'int', 'internal' => 'value'], + 'fleetmgmt_driver_attr_id' => ['name' => 'fleetmgmt_driver_attr_id', 'type' => 'int', 'internal' => 'id'], + 'fleetmgmt_driver_attr_driver' => ['name' => 'fleetmgmt_driver_attr_driver', 'type' => 'int', 'internal' => 'ref'], + 'fleetmgmt_driver_attr_type' => ['name' => 'fleetmgmt_driver_attr_type', 'type' => 'int', 'internal' => 'type'], + 'fleetmgmt_driver_attr_value' => ['name' => 'fleetmgmt_driver_attr_value', 'type' => 'int', 'internal' => 'value'], ]; /** diff --git a/Models/Attribute/DriverAttributeTypeMapper.php b/Models/Attribute/DriverAttributeTypeMapper.php index 0d6f619..30031dc 100644 --- a/Models/Attribute/DriverAttributeTypeMapper.php +++ b/Models/Attribute/DriverAttributeTypeMapper.php @@ -42,7 +42,8 @@ final class DriverAttributeTypeMapper extends DataMapperFactory 'fleetmgmt_driver_attr_type_datatype' => ['name' => 'fleetmgmt_driver_attr_type_datatype', 'type' => 'int', 'internal' => 'datatype'], 'fleetmgmt_driver_attr_type_fields' => ['name' => 'fleetmgmt_driver_attr_type_fields', 'type' => 'int', 'internal' => 'fields'], 'fleetmgmt_driver_attr_type_custom' => ['name' => 'fleetmgmt_driver_attr_type_custom', 'type' => 'bool', 'internal' => 'custom'], - 'fleetmgmt_driver_attr_type_repeatable' => ['name' => 'fleetmgmt_driver_attr_type_repeatable', 'type' => 'bool', 'internal' => 'repeatable'], + 'fleetmgmt_driver_attr_type_repeatable' => ['name' => 'fleetmgmt_driver_attr_type_repeatable', 'type' => 'bool', 'internal' => 'repeatable'], + 'fleetmgmt_driver_attr_type_internal' => ['name' => 'fleetmgmt_driver_attr_type_internal', 'type' => 'bool', 'internal' => 'isInternal'], 'fleetmgmt_driver_attr_type_pattern' => ['name' => 'fleetmgmt_driver_attr_type_pattern', 'type' => 'string', 'internal' => 'validationPattern'], 'fleetmgmt_driver_attr_type_required' => ['name' => 'fleetmgmt_driver_attr_type_required', 'type' => 'bool', 'internal' => 'isRequired'], ]; diff --git a/Models/Attribute/DriverAttributeValueL11nMapper.php b/Models/Attribute/DriverAttributeValueL11nMapper.php index a9ca0de..e4aceba 100644 --- a/Models/Attribute/DriverAttributeValueL11nMapper.php +++ b/Models/Attribute/DriverAttributeValueL11nMapper.php @@ -37,10 +37,10 @@ final class DriverAttributeValueL11nMapper extends DataMapperFactory * @since 1.0.0 */ public const COLUMNS = [ - 'fleetmgmt_driver_attr_value_l11n_id' => ['name' => 'fleetmgmt_driver_attr_value_l11n_id', 'type' => 'int', 'internal' => 'id'], - 'fleetmgmt_driver_attr_value_l11n_title' => ['name' => 'fleetmgmt_driver_attr_value_l11n_title', 'type' => 'string', 'internal' => 'content', 'autocomplete' => true], - 'fleetmgmt_driver_attr_value_l11n_value' => ['name' => 'fleetmgmt_driver_attr_value_l11n_value', 'type' => 'int', 'internal' => 'ref'], - 'fleetmgmt_driver_attr_value_l11n_lang' => ['name' => 'fleetmgmt_driver_attr_value_l11n_lang', 'type' => 'string', 'internal' => 'language'], + 'fleetmgmt_driver_attr_value_l11n_id' => ['name' => 'fleetmgmt_driver_attr_value_l11n_id', 'type' => 'int', 'internal' => 'id'], + 'fleetmgmt_driver_attr_value_l11n_title' => ['name' => 'fleetmgmt_driver_attr_value_l11n_title', 'type' => 'string', 'internal' => 'content', 'autocomplete' => true], + 'fleetmgmt_driver_attr_value_l11n_value' => ['name' => 'fleetmgmt_driver_attr_value_l11n_value', 'type' => 'int', 'internal' => 'ref'], + 'fleetmgmt_driver_attr_value_l11n_lang' => ['name' => 'fleetmgmt_driver_attr_value_l11n_lang', 'type' => 'string', 'internal' => 'language'], ]; /** diff --git a/Models/Attribute/DriverAttributeValueMapper.php b/Models/Attribute/DriverAttributeValueMapper.php index ce86166..f983efc 100644 --- a/Models/Attribute/DriverAttributeValueMapper.php +++ b/Models/Attribute/DriverAttributeValueMapper.php @@ -37,15 +37,15 @@ final class DriverAttributeValueMapper extends DataMapperFactory * @since 1.0.0 */ public const COLUMNS = [ - 'fleetmgmt_driver_attr_value_id' => ['name' => 'fleetmgmt_driver_attr_value_id', 'type' => 'int', 'internal' => 'id'], - 'fleetmgmt_driver_attr_value_default' => ['name' => 'fleetmgmt_driver_attr_value_default', 'type' => 'bool', 'internal' => 'isDefault'], - 'fleetmgmt_driver_attr_value_valueStr' => ['name' => 'fleetmgmt_driver_attr_value_valueStr', 'type' => 'string', 'internal' => 'valueStr'], - 'fleetmgmt_driver_attr_value_valueInt' => ['name' => 'fleetmgmt_driver_attr_value_valueInt', 'type' => 'int', 'internal' => 'valueInt'], - 'fleetmgmt_driver_attr_value_valueDec' => ['name' => 'fleetmgmt_driver_attr_value_valueDec', 'type' => 'float', 'internal' => 'valueDec'], - 'fleetmgmt_driver_attr_value_valueDat' => ['name' => 'fleetmgmt_driver_attr_value_valueDat', 'type' => 'DateTime', 'internal' => 'valueDat'], - 'fleetmgmt_driver_attr_value_unit' => ['name' => 'fleetmgmt_driver_attr_value_unit', 'type' => 'string', 'internal' => 'unit'], - 'fleetmgmt_driver_attr_value_deptype' => ['name' => 'fleetmgmt_driver_attr_value_deptype', 'type' => 'int', 'internal' => 'dependingAttributeType'], - 'fleetmgmt_driver_attr_value_depvalue' => ['name' => 'fleetmgmt_driver_attr_value_depvalue', 'type' => 'int', 'internal' => 'dependingAttributeValue'], + 'fleetmgmt_driver_attr_value_id' => ['name' => 'fleetmgmt_driver_attr_value_id', 'type' => 'int', 'internal' => 'id'], + 'fleetmgmt_driver_attr_value_default' => ['name' => 'fleetmgmt_driver_attr_value_default', 'type' => 'bool', 'internal' => 'isDefault'], + 'fleetmgmt_driver_attr_value_valueStr' => ['name' => 'fleetmgmt_driver_attr_value_valueStr', 'type' => 'string', 'internal' => 'valueStr'], + 'fleetmgmt_driver_attr_value_valueInt' => ['name' => 'fleetmgmt_driver_attr_value_valueInt', 'type' => 'int', 'internal' => 'valueInt'], + 'fleetmgmt_driver_attr_value_valueDec' => ['name' => 'fleetmgmt_driver_attr_value_valueDec', 'type' => 'float', 'internal' => 'valueDec'], + 'fleetmgmt_driver_attr_value_valueDat' => ['name' => 'fleetmgmt_driver_attr_value_valueDat', 'type' => 'DateTime', 'internal' => 'valueDat'], + 'fleetmgmt_driver_attr_value_unit' => ['name' => 'fleetmgmt_driver_attr_value_unit', 'type' => 'string', 'internal' => 'unit'], + 'fleetmgmt_driver_attr_value_deptype' => ['name' => 'fleetmgmt_driver_attr_value_deptype', 'type' => 'int', 'internal' => 'dependingAttributeType'], + 'fleetmgmt_driver_attr_value_depvalue' => ['name' => 'fleetmgmt_driver_attr_value_depvalue', 'type' => 'int', 'internal' => 'dependingAttributeValue'], ]; /** diff --git a/Models/Attribute/VehicleAttributeMapper.php b/Models/Attribute/VehicleAttributeMapper.php index ea68063..ba4568c 100644 --- a/Models/Attribute/VehicleAttributeMapper.php +++ b/Models/Attribute/VehicleAttributeMapper.php @@ -37,10 +37,10 @@ final class VehicleAttributeMapper extends DataMapperFactory * @since 1.0.0 */ public const COLUMNS = [ - 'fleetmgmt_vehicle_attr_id' => ['name' => 'fleetmgmt_vehicle_attr_id', 'type' => 'int', 'internal' => 'id'], - 'fleetmgmt_vehicle_attr_vehicle' => ['name' => 'fleetmgmt_vehicle_attr_vehicle', 'type' => 'int', 'internal' => 'ref'], - 'fleetmgmt_vehicle_attr_type' => ['name' => 'fleetmgmt_vehicle_attr_type', 'type' => 'int', 'internal' => 'type'], - 'fleetmgmt_vehicle_attr_value' => ['name' => 'fleetmgmt_vehicle_attr_value', 'type' => 'int', 'internal' => 'value'], + 'fleetmgmt_vehicle_attr_id' => ['name' => 'fleetmgmt_vehicle_attr_id', 'type' => 'int', 'internal' => 'id'], + 'fleetmgmt_vehicle_attr_vehicle' => ['name' => 'fleetmgmt_vehicle_attr_vehicle', 'type' => 'int', 'internal' => 'ref'], + 'fleetmgmt_vehicle_attr_type' => ['name' => 'fleetmgmt_vehicle_attr_type', 'type' => 'int', 'internal' => 'type'], + 'fleetmgmt_vehicle_attr_value' => ['name' => 'fleetmgmt_vehicle_attr_value', 'type' => 'int', 'internal' => 'value'], ]; /** diff --git a/Models/Attribute/VehicleAttributeTypeMapper.php b/Models/Attribute/VehicleAttributeTypeMapper.php index f636c2f..6de463f 100644 --- a/Models/Attribute/VehicleAttributeTypeMapper.php +++ b/Models/Attribute/VehicleAttributeTypeMapper.php @@ -42,7 +42,8 @@ final class VehicleAttributeTypeMapper extends DataMapperFactory 'fleetmgmt_vehicle_attr_type_datatype' => ['name' => 'fleetmgmt_vehicle_attr_type_datatype', 'type' => 'int', 'internal' => 'datatype'], 'fleetmgmt_vehicle_attr_type_fields' => ['name' => 'fleetmgmt_vehicle_attr_type_fields', 'type' => 'int', 'internal' => 'fields'], 'fleetmgmt_vehicle_attr_type_custom' => ['name' => 'fleetmgmt_vehicle_attr_type_custom', 'type' => 'bool', 'internal' => 'custom'], - 'fleetmgmt_vehicle_attr_type_repeatable' => ['name' => 'fleetmgmt_vehicle_attr_type_repeatable', 'type' => 'bool', 'internal' => 'repeatable'], + 'fleetmgmt_vehicle_attr_type_repeatable' => ['name' => 'fleetmgmt_vehicle_attr_type_repeatable', 'type' => 'bool', 'internal' => 'repeatable'], + 'fleetmgmt_vehicle_attr_type_internal' => ['name' => 'fleetmgmt_vehicle_attr_type_internal', 'type' => 'bool', 'internal' => 'isInternal'], 'fleetmgmt_vehicle_attr_type_pattern' => ['name' => 'fleetmgmt_vehicle_attr_type_pattern', 'type' => 'string', 'internal' => 'validationPattern'], 'fleetmgmt_vehicle_attr_type_required' => ['name' => 'fleetmgmt_vehicle_attr_type_required', 'type' => 'bool', 'internal' => 'isRequired'], ]; diff --git a/Models/Attribute/VehicleAttributeValueL11nMapper.php b/Models/Attribute/VehicleAttributeValueL11nMapper.php index 6bd0780..58db488 100644 --- a/Models/Attribute/VehicleAttributeValueL11nMapper.php +++ b/Models/Attribute/VehicleAttributeValueL11nMapper.php @@ -37,10 +37,10 @@ final class VehicleAttributeValueL11nMapper extends DataMapperFactory * @since 1.0.0 */ public const COLUMNS = [ - 'fleetmgmt_vehicle_attr_value_l11n_id' => ['name' => 'fleetmgmt_vehicle_attr_value_l11n_id', 'type' => 'int', 'internal' => 'id'], - 'fleetmgmt_vehicle_attr_value_l11n_title' => ['name' => 'fleetmgmt_vehicle_attr_value_l11n_title', 'type' => 'string', 'internal' => 'content', 'autocomplete' => true], - 'fleetmgmt_vehicle_attr_value_l11n_value' => ['name' => 'fleetmgmt_vehicle_attr_value_l11n_value', 'type' => 'int', 'internal' => 'ref'], - 'fleetmgmt_vehicle_attr_value_l11n_lang' => ['name' => 'fleetmgmt_vehicle_attr_value_l11n_lang', 'type' => 'string', 'internal' => 'language'], + 'fleetmgmt_vehicle_attr_value_l11n_id' => ['name' => 'fleetmgmt_vehicle_attr_value_l11n_id', 'type' => 'int', 'internal' => 'id'], + 'fleetmgmt_vehicle_attr_value_l11n_title' => ['name' => 'fleetmgmt_vehicle_attr_value_l11n_title', 'type' => 'string', 'internal' => 'content', 'autocomplete' => true], + 'fleetmgmt_vehicle_attr_value_l11n_value' => ['name' => 'fleetmgmt_vehicle_attr_value_l11n_value', 'type' => 'int', 'internal' => 'ref'], + 'fleetmgmt_vehicle_attr_value_l11n_lang' => ['name' => 'fleetmgmt_vehicle_attr_value_l11n_lang', 'type' => 'string', 'internal' => 'language'], ]; /** diff --git a/Models/Attribute/VehicleAttributeValueMapper.php b/Models/Attribute/VehicleAttributeValueMapper.php index 8a5201a..293ada1 100644 --- a/Models/Attribute/VehicleAttributeValueMapper.php +++ b/Models/Attribute/VehicleAttributeValueMapper.php @@ -37,15 +37,15 @@ final class VehicleAttributeValueMapper extends DataMapperFactory * @since 1.0.0 */ public const COLUMNS = [ - 'fleetmgmt_vehicle_attr_value_id' => ['name' => 'fleetmgmt_vehicle_attr_value_id', 'type' => 'int', 'internal' => 'id'], - 'fleetmgmt_vehicle_attr_value_default' => ['name' => 'fleetmgmt_vehicle_attr_value_default', 'type' => 'bool', 'internal' => 'isDefault'], - 'fleetmgmt_vehicle_attr_value_valueStr' => ['name' => 'fleetmgmt_vehicle_attr_value_valueStr', 'type' => 'string', 'internal' => 'valueStr'], - 'fleetmgmt_vehicle_attr_value_valueInt' => ['name' => 'fleetmgmt_vehicle_attr_value_valueInt', 'type' => 'int', 'internal' => 'valueInt'], - 'fleetmgmt_vehicle_attr_value_valueDec' => ['name' => 'fleetmgmt_vehicle_attr_value_valueDec', 'type' => 'float', 'internal' => 'valueDec'], - 'fleetmgmt_vehicle_attr_value_valueDat' => ['name' => 'fleetmgmt_vehicle_attr_value_valueDat', 'type' => 'DateTime', 'internal' => 'valueDat'], - 'fleetmgmt_vehicle_attr_value_unit' => ['name' => 'fleetmgmt_vehicle_attr_value_unit', 'type' => 'string', 'internal' => 'unit'], - 'fleetmgmt_vehicle_attr_value_deptype' => ['name' => 'fleetmgmt_vehicle_attr_value_deptype', 'type' => 'int', 'internal' => 'dependingAttributeType'], - 'fleetmgmt_vehicle_attr_value_depvalue' => ['name' => 'fleetmgmt_vehicle_attr_value_depvalue', 'type' => 'int', 'internal' => 'dependingAttributeValue'], + 'fleetmgmt_vehicle_attr_value_id' => ['name' => 'fleetmgmt_vehicle_attr_value_id', 'type' => 'int', 'internal' => 'id'], + 'fleetmgmt_vehicle_attr_value_default' => ['name' => 'fleetmgmt_vehicle_attr_value_default', 'type' => 'bool', 'internal' => 'isDefault'], + 'fleetmgmt_vehicle_attr_value_valueStr' => ['name' => 'fleetmgmt_vehicle_attr_value_valueStr', 'type' => 'string', 'internal' => 'valueStr'], + 'fleetmgmt_vehicle_attr_value_valueInt' => ['name' => 'fleetmgmt_vehicle_attr_value_valueInt', 'type' => 'int', 'internal' => 'valueInt'], + 'fleetmgmt_vehicle_attr_value_valueDec' => ['name' => 'fleetmgmt_vehicle_attr_value_valueDec', 'type' => 'float', 'internal' => 'valueDec'], + 'fleetmgmt_vehicle_attr_value_valueDat' => ['name' => 'fleetmgmt_vehicle_attr_value_valueDat', 'type' => 'DateTime', 'internal' => 'valueDat'], + 'fleetmgmt_vehicle_attr_value_unit' => ['name' => 'fleetmgmt_vehicle_attr_value_unit', 'type' => 'string', 'internal' => 'unit'], + 'fleetmgmt_vehicle_attr_value_deptype' => ['name' => 'fleetmgmt_vehicle_attr_value_deptype', 'type' => 'int', 'internal' => 'dependingAttributeType'], + 'fleetmgmt_vehicle_attr_value_depvalue' => ['name' => 'fleetmgmt_vehicle_attr_value_depvalue', 'type' => 'int', 'internal' => 'dependingAttributeValue'], ]; /** diff --git a/Models/Cost.php b/Models/Cost.php index b724492..320694e 100644 --- a/Models/Cost.php +++ b/Models/Cost.php @@ -34,7 +34,7 @@ class Cost implements \JsonSerializable public function toArray() : array { return [ - 'id' => $this->id, + 'id' => $this->id, ]; } diff --git a/Models/CostType.php b/Models/CostType.php index 52d49f6..ba62fd8 100644 --- a/Models/CostType.php +++ b/Models/CostType.php @@ -34,7 +34,7 @@ class CostType implements \JsonSerializable public function toArray() : array { return [ - 'id' => $this->id, + 'id' => $this->id, ]; } diff --git a/Models/Driver/Driver.php b/Models/Driver/Driver.php index 829b960..71aeca9 100644 --- a/Models/Driver/Driver.php +++ b/Models/Driver/Driver.php @@ -60,8 +60,8 @@ class Driver public function toArray() : array { return [ - 'id' => $this->id, - 'status' => $this->status, + 'id' => $this->id, + 'status' => $this->status, ]; } diff --git a/Models/Driver/DriverInspectionMapper.php b/Models/Driver/DriverInspectionMapper.php index f7be7bd..f3e292c 100644 --- a/Models/Driver/DriverInspectionMapper.php +++ b/Models/Driver/DriverInspectionMapper.php @@ -18,7 +18,7 @@ use Modules\FleetManagement\Models\Inspection; use phpOMS\DataStorage\Database\Mapper\DataMapperFactory; /** - * mapper class. + * Driver inspection mapper class. * * @package Modules\FleetManagement\Models\Driver * @license OMS License 2.0 diff --git a/Models/Driver/DriverInspectionTypeL11nMapper.php b/Models/Driver/DriverInspectionTypeL11nMapper.php index 0f6396f..6482553 100644 --- a/Models/Driver/DriverInspectionTypeL11nMapper.php +++ b/Models/Driver/DriverInspectionTypeL11nMapper.php @@ -18,7 +18,7 @@ use phpOMS\DataStorage\Database\Mapper\DataMapperFactory; use phpOMS\Localization\BaseStringL11n; /** - * mapper class. + * Driver inspection type l11n mapper class. * * @package Modules\FleetManagement\Models\Driver * @license OMS License 2.0 diff --git a/Models/Driver/DriverMapper.php b/Models/Driver/DriverMapper.php index 9994024..2dd256f 100644 --- a/Models/Driver/DriverMapper.php +++ b/Models/Driver/DriverMapper.php @@ -40,9 +40,9 @@ final class DriverMapper extends DataMapperFactory * @since 1.0.0 */ public const COLUMNS = [ - 'fleetmgmt_driver_id' => ['name' => 'fleetmgmt_driver_id', 'type' => 'int', 'internal' => 'id'], - 'fleetmgmt_driver_status' => ['name' => 'fleetmgmt_driver_status', 'type' => 'int', 'internal' => 'status'], - 'fleetmgmt_driver_account' => ['name' => 'fleetmgmt_driver_account', 'type' => 'int', 'internal' => 'account'], + 'fleetmgmt_driver_id' => ['name' => 'fleetmgmt_driver_id', 'type' => 'int', 'internal' => 'id'], + 'fleetmgmt_driver_status' => ['name' => 'fleetmgmt_driver_status', 'type' => 'int', 'internal' => 'status'], + 'fleetmgmt_driver_account' => ['name' => 'fleetmgmt_driver_account', 'type' => 'int', 'internal' => 'account'], ]; /** @@ -52,7 +52,7 @@ final class DriverMapper extends DataMapperFactory * @since 1.0.0 */ public const HAS_MANY = [ - 'files' => [ + 'files' => [ 'mapper' => MediaMapper::class, 'table' => 'fleetmgmt_driver_media', 'external' => 'fleetmgmt_driver_media_media', diff --git a/Models/FuelTypeL11nMapper.php b/Models/FuelTypeL11nMapper.php index 0ff1136..de39277 100644 --- a/Models/FuelTypeL11nMapper.php +++ b/Models/FuelTypeL11nMapper.php @@ -18,7 +18,7 @@ use phpOMS\DataStorage\Database\Mapper\DataMapperFactory; use phpOMS\Localization\BaseStringL11n; /** - * mapper class. + * Fuel type l11n mapper class. * * @package Modules\FleetManagement\Models * @license OMS License 2.0 diff --git a/Models/Inspection.php b/Models/Inspection.php index 38f58d7..dc1142d 100644 --- a/Models/Inspection.php +++ b/Models/Inspection.php @@ -74,7 +74,7 @@ class Inspection implements \JsonSerializable public function toArray() : array { return [ - 'id' => $this->id, + 'id' => $this->id, ]; } diff --git a/Models/InspectionMapper.php b/Models/InspectionMapper.php index d6af791..3e1e745 100644 --- a/Models/InspectionMapper.php +++ b/Models/InspectionMapper.php @@ -17,7 +17,7 @@ namespace Modules\FleetManagement\Models; use phpOMS\DataStorage\Database\Mapper\DataMapperFactory; /** - * mapper class. + * Inspection mapper class. * * @package Modules\FleetManagement\Models * @license OMS License 2.0 diff --git a/Models/InspectionTypeL11nMapper.php b/Models/InspectionTypeL11nMapper.php index 33e4684..356f5fb 100644 --- a/Models/InspectionTypeL11nMapper.php +++ b/Models/InspectionTypeL11nMapper.php @@ -18,7 +18,7 @@ use phpOMS\DataStorage\Database\Mapper\DataMapperFactory; use phpOMS\Localization\BaseStringL11n; /** - * mapper class. + * Inspection type l11n mapper class. * * @package Modules\FleetManagement\Models * @license OMS License 2.0 diff --git a/Models/License.php b/Models/License.php index 927a319..fb3f461 100644 --- a/Models/License.php +++ b/Models/License.php @@ -32,7 +32,7 @@ class License implements \JsonSerializable public function toArray() : array { return [ - 'id' => $this->id, + 'id' => $this->id, ]; } diff --git a/Models/LicenseType.php b/Models/LicenseType.php index f090e41..7d37d94 100644 --- a/Models/LicenseType.php +++ b/Models/LicenseType.php @@ -32,7 +32,7 @@ class LicenseType implements \JsonSerializable public function toArray() : array { return [ - 'id' => $this->id, + 'id' => $this->id, ]; } diff --git a/Models/Milage.php b/Models/Milage.php index 4874b71..686cd31 100644 --- a/Models/Milage.php +++ b/Models/Milage.php @@ -64,7 +64,7 @@ class Milage implements \JsonSerializable public function toArray() : array { return [ - 'id' => $this->id, + 'id' => $this->id, ]; } diff --git a/Models/MilageMapper.php b/Models/MilageMapper.php index 69d8163..eb9a9b0 100644 --- a/Models/MilageMapper.php +++ b/Models/MilageMapper.php @@ -18,7 +18,7 @@ use Modules\FleetManagement\Models\Driver\DriverMapper; use phpOMS\DataStorage\Database\Mapper\DataMapperFactory; /** - * mapper class. + * Milage mapper class. * * @package Modules\FleetManagement\Models * @license OMS License 2.0 @@ -37,15 +37,15 @@ final class MilageMapper extends DataMapperFactory * @since 1.0.0 */ public const COLUMNS = [ - 'fleetmgmt_milage_id' => ['name' => 'fleetmgmt_milage_id', 'type' => 'int', 'internal' => 'id'], - 'fleetmgmt_milage_description' => ['name' => 'fleetmgmt_milage_description', 'type' => 'string', 'internal' => 'description'], - 'fleetmgmt_milage_status' => ['name' => 'fleetmgmt_milage_status', 'type' => 'int', 'internal' => 'status'], - 'fleetmgmt_milage_driver' => ['name' => 'fleetmgmt_milage_driver', 'type' => 'int', 'internal' => 'driver'], - 'fleetmgmt_milage_vehicle' => ['name' => 'fleetmgmt_milage_vehicle', 'type' => 'int', 'internal' => 'vehicle'], - 'fleetmgmt_milage_start' => ['name' => 'fleetmgmt_milage_start', 'type' => 'DateTime', 'internal' => 'start'], - 'fleetmgmt_milage_end' => ['name' => 'fleetmgmt_milage_end', 'type' => 'DateTime', 'internal' => 'end'], - 'fleetmgmt_milage_milage' => ['name' => 'fleetmgmt_milage_milage', 'type' => 'int', 'internal' => 'milage'], - 'fleetmgmt_milage_fuel' => ['name' => 'fleetmgmt_milage_fuel', 'type' => 'int', 'internal' => 'fuelUsage'], + 'fleetmgmt_milage_id' => ['name' => 'fleetmgmt_milage_id', 'type' => 'int', 'internal' => 'id'], + 'fleetmgmt_milage_description' => ['name' => 'fleetmgmt_milage_description', 'type' => 'string', 'internal' => 'description'], + 'fleetmgmt_milage_status' => ['name' => 'fleetmgmt_milage_status', 'type' => 'int', 'internal' => 'status'], + 'fleetmgmt_milage_driver' => ['name' => 'fleetmgmt_milage_driver', 'type' => 'int', 'internal' => 'driver'], + 'fleetmgmt_milage_vehicle' => ['name' => 'fleetmgmt_milage_vehicle', 'type' => 'int', 'internal' => 'vehicle'], + 'fleetmgmt_milage_start' => ['name' => 'fleetmgmt_milage_start', 'type' => 'DateTime', 'internal' => 'start'], + 'fleetmgmt_milage_end' => ['name' => 'fleetmgmt_milage_end', 'type' => 'DateTime', 'internal' => 'end'], + 'fleetmgmt_milage_milage' => ['name' => 'fleetmgmt_milage_milage', 'type' => 'int', 'internal' => 'milage'], + 'fleetmgmt_milage_fuel' => ['name' => 'fleetmgmt_milage_fuel', 'type' => 'int', 'internal' => 'fuelUsage'], ]; /** diff --git a/Models/Vehicle.php b/Models/Vehicle.php index d45b1ce..5eef0bb 100644 --- a/Models/Vehicle.php +++ b/Models/Vehicle.php @@ -68,7 +68,7 @@ class Vehicle implements \JsonSerializable public function toArray() : array { return [ - 'id' => $this->id, + 'id' => $this->id, ]; } diff --git a/Models/VehicleMapper.php b/Models/VehicleMapper.php index d0c9b36..1ea6569 100644 --- a/Models/VehicleMapper.php +++ b/Models/VehicleMapper.php @@ -39,15 +39,15 @@ final class VehicleMapper extends DataMapperFactory * @since 1.0.0 */ public const COLUMNS = [ - 'fleetmgmt_vehicle_id' => ['name' => 'fleetmgmt_vehicle_id', 'type' => 'int', 'internal' => 'id'], - 'fleetmgmt_vehicle_name' => ['name' => 'fleetmgmt_vehicle_name', 'type' => 'string', 'internal' => 'name'], - 'fleetmgmt_vehicle_status' => ['name' => 'fleetmgmt_vehicle_status', 'type' => 'int', 'internal' => 'status'], - 'fleetmgmt_vehicle_info' => ['name' => 'fleetmgmt_vehicle_info', 'type' => 'string', 'internal' => 'info'], - 'fleetmgmt_vehicle_unit' => ['name' => 'fleetmgmt_vehicle_unit', 'type' => 'int', 'internal' => 'unit'], - 'fleetmgmt_vehicle_type' => ['name' => 'fleetmgmt_vehicle_type', 'type' => 'int', 'internal' => 'type'], - 'fleetmgmt_vehicle_fuel' => ['name' => 'fleetmgmt_vehicle_fuel', 'type' => 'int', 'internal' => 'fuelType'], - 'fleetmgmt_vehicle_responsible' => ['name' => 'fleetmgmt_vehicle_responsible', 'type' => 'int', 'internal' => 'responsible'], - 'fleetmgmt_vehicle_created_at' => ['name' => 'fleetmgmt_vehicle_created_at', 'type' => 'DateTimeImmutable', 'internal' => 'createdAt', 'readonly' => true], + 'fleetmgmt_vehicle_id' => ['name' => 'fleetmgmt_vehicle_id', 'type' => 'int', 'internal' => 'id'], + 'fleetmgmt_vehicle_name' => ['name' => 'fleetmgmt_vehicle_name', 'type' => 'string', 'internal' => 'name'], + 'fleetmgmt_vehicle_status' => ['name' => 'fleetmgmt_vehicle_status', 'type' => 'int', 'internal' => 'status'], + 'fleetmgmt_vehicle_info' => ['name' => 'fleetmgmt_vehicle_info', 'type' => 'string', 'internal' => 'info'], + 'fleetmgmt_vehicle_unit' => ['name' => 'fleetmgmt_vehicle_unit', 'type' => 'int', 'internal' => 'unit'], + 'fleetmgmt_vehicle_type' => ['name' => 'fleetmgmt_vehicle_type', 'type' => 'int', 'internal' => 'type'], + 'fleetmgmt_vehicle_fuel' => ['name' => 'fleetmgmt_vehicle_fuel', 'type' => 'int', 'internal' => 'fuelType'], + 'fleetmgmt_vehicle_responsible' => ['name' => 'fleetmgmt_vehicle_responsible', 'type' => 'int', 'internal' => 'responsible'], + 'fleetmgmt_vehicle_created_at' => ['name' => 'fleetmgmt_vehicle_created_at', 'type' => 'DateTimeImmutable', 'internal' => 'createdAt', 'readonly' => true], ]; /** @@ -57,7 +57,7 @@ final class VehicleMapper extends DataMapperFactory * @since 1.0.0 */ public const HAS_MANY = [ - 'files' => [ + 'files' => [ 'mapper' => MediaMapper::class, 'table' => 'fleetmgmt_vehicle_media', 'external' => 'fleetmgmt_vehicle_media_media', @@ -85,12 +85,12 @@ final class VehicleMapper extends DataMapperFactory */ public const OWNS_ONE = [ 'type' => [ - 'mapper' => VehicleTypeMapper::class, - 'external' => 'fleetmgmt_vehicle_type', + 'mapper' => VehicleTypeMapper::class, + 'external' => 'fleetmgmt_vehicle_type', ], 'fuelType' => [ - 'mapper' => FuelTypeMapper::class, - 'external' => 'fleetmgmt_vehicle_fuel', + 'mapper' => FuelTypeMapper::class, + 'external' => 'fleetmgmt_vehicle_fuel', ], ]; diff --git a/Models/VehicleTypeL11nMapper.php b/Models/VehicleTypeL11nMapper.php index e5eb452..13142b0 100644 --- a/Models/VehicleTypeL11nMapper.php +++ b/Models/VehicleTypeL11nMapper.php @@ -18,7 +18,7 @@ use phpOMS\DataStorage\Database\Mapper\DataMapperFactory; use phpOMS\Localization\BaseStringL11n; /** - * mapper class. + * Vehicle type l11n mapper class. * * @package Modules\FleetManagement\Models * @license OMS License 2.0 diff --git a/Models/VehicleTypeMapper.php b/Models/VehicleTypeMapper.php index 0498203..9b35499 100644 --- a/Models/VehicleTypeMapper.php +++ b/Models/VehicleTypeMapper.php @@ -37,8 +37,8 @@ final class VehicleTypeMapper extends DataMapperFactory * @since 1.0.0 */ public const COLUMNS = [ - 'fleetmgmt_vehicle_type_id' => ['name' => 'fleetmgmt_vehicle_type_id', 'type' => 'int', 'internal' => 'id'], - 'fleetmgmt_vehicle_type_name' => ['name' => 'fleetmgmt_vehicle_type_name', 'type' => 'string', 'internal' => 'title', 'autocomplete' => true], + 'fleetmgmt_vehicle_type_id' => ['name' => 'fleetmgmt_vehicle_type_id', 'type' => 'int', 'internal' => 'id'], + 'fleetmgmt_vehicle_type_name' => ['name' => 'fleetmgmt_vehicle_type_name', 'type' => 'string', 'internal' => 'title', 'autocomplete' => true], ]; diff --git a/Theme/Backend/Lang/de.lang.php b/Theme/Backend/Lang/de.lang.php index e9f0405..b746585 100755 --- a/Theme/Backend/Lang/de.lang.php +++ b/Theme/Backend/Lang/de.lang.php @@ -13,35 +13,35 @@ declare(strict_types=1); return ['FleetManagement' => [ - ':status1' => 'Aktiv', - ':status2' => 'Inaktiv', - ':status3' => 'Beschädigt', - ':status4' => 'Außer Betrieb', - ':status-d1' => 'Aktiv', - ':status-d2' => 'Inaktiv', - ':status-d3' => 'Fahrunfähig', - 'Attributes' => 'Attribute', - 'Costs' => 'Kosten', - 'Date' => 'Datum', - 'Driver' => 'Fahrer', - 'Drivers' => 'Fahrer', - 'End' => 'Ende', - 'Files' => 'Dateien', - 'History' => 'Historie', - 'Inspections' => 'Inspektionen', - 'LeasingFee' => 'Leasingkosten', - 'Make' => 'Marke', - 'Milage' => 'Tacho', - 'Model' => 'Modell', - 'Name' => 'Name', - 'Notes' => 'Notizen', - 'Profile' => 'Profile', - 'PurchasePrice' => 'Kaufpreis', - 'Responsible' => 'Verantwortlich', - 'Start' => 'Start', - 'Status' => 'Status', - 'Type' => 'Typ', - 'Upcoming' => 'Upcoming', - 'Vehicles' => 'Fahrzeuge', - 'Vin' => 'Vin', + ':status1' => 'Aktiv', + ':status2' => 'Inaktiv', + ':status3' => 'Beschädigt', + ':status4' => 'Außer Betrieb', + ':status-d1' => 'Aktiv', + ':status-d2' => 'Inaktiv', + ':status-d3' => 'Fahrunfähig', + 'Attributes' => 'Attribute', + 'Costs' => 'Kosten', + 'Date' => 'Datum', + 'Driver' => 'Fahrer', + 'Drivers' => 'Fahrer', + 'End' => 'Ende', + 'Files' => 'Dateien', + 'History' => 'Historie', + 'Inspections' => 'Inspektionen', + 'LeasingFee' => 'Leasingkosten', + 'Make' => 'Marke', + 'Milage' => 'Tacho', + 'Model' => 'Modell', + 'Name' => 'Name', + 'Notes' => 'Notizen', + 'Profile' => 'Profile', + 'PurchasePrice' => 'Kaufpreis', + 'Responsible' => 'Verantwortlich', + 'Start' => 'Start', + 'Status' => 'Status', + 'Type' => 'Typ', + 'Upcoming' => 'Upcoming', + 'Vehicles' => 'Fahrzeuge', + 'Vin' => 'Vin', ]]; diff --git a/Theme/Backend/Lang/en.lang.php b/Theme/Backend/Lang/en.lang.php index d9fe396..0896c18 100755 --- a/Theme/Backend/Lang/en.lang.php +++ b/Theme/Backend/Lang/en.lang.php @@ -13,35 +13,35 @@ declare(strict_types=1); return ['FleetManagement' => [ - ':status1' => 'Active', - ':status2' => 'Inactive', - ':status3' => 'Damaged', - ':status4' => 'Out of order', - ':status-d1' => 'Active', - ':status-d2' => 'Inactive', - ':status-d3' => 'Suspended', - 'Attributes' => 'Attributes', - 'Costs' => 'Costs', - 'Date' => 'Date', - 'Driver' => 'Driver', - 'Drivers' => 'Drivers', - 'End' => 'End', - 'Files' => 'Files', - 'History' => 'History', - 'Inspections' => 'Inspections', - 'LeasingFee' => 'Leasing Fee', - 'Make' => 'Make', - 'Milage' => 'Milage', - 'Model' => 'Model', - 'Name' => 'Name', - 'Notes' => 'Notes', - 'Profile' => 'Profile', - 'PurchasePrice' => 'Purchase Price', - 'Responsible' => 'Responsible', - 'Start' => 'Start', - 'Status' => 'Status', - 'Type' => 'Type', - 'Upcoming' => 'Upcoming', - 'Vehicles' => 'Vehicles', - 'Vin' => 'Vin', + ':status1' => 'Active', + ':status2' => 'Inactive', + ':status3' => 'Damaged', + ':status4' => 'Out of order', + ':status-d1' => 'Active', + ':status-d2' => 'Inactive', + ':status-d3' => 'Suspended', + 'Attributes' => 'Attributes', + 'Costs' => 'Costs', + 'Date' => 'Date', + 'Driver' => 'Driver', + 'Drivers' => 'Drivers', + 'End' => 'End', + 'Files' => 'Files', + 'History' => 'History', + 'Inspections' => 'Inspections', + 'LeasingFee' => 'Leasing Fee', + 'Make' => 'Make', + 'Milage' => 'Milage', + 'Model' => 'Model', + 'Name' => 'Name', + 'Notes' => 'Notes', + 'Profile' => 'Profile', + 'PurchasePrice' => 'Purchase Price', + 'Responsible' => 'Responsible', + 'Start' => 'Start', + 'Status' => 'Status', + 'Type' => 'Type', + 'Upcoming' => 'Upcoming', + 'Vehicles' => 'Vehicles', + 'Vin' => 'Vin', ]]; diff --git a/Theme/Backend/Lang/no.lang.php b/Theme/Backend/Lang/no.lang.php index b85bffb..c4cbb0b 100755 --- a/Theme/Backend/Lang/no.lang.php +++ b/Theme/Backend/Lang/no.lang.php @@ -13,32 +13,32 @@ declare(strict_types=1); return ['FleetManagement' => [ - 'Attributes' => '', - 'Costs' => '', - 'Date' => 'Dato', - 'Description' => '', - 'Driver' => '', - 'Drivers' => '', - 'End' => '', - 'Files' => 'Filer', - 'From' => '', - 'History' => '', - 'Inspections' => '', - 'LeasingFee' => '', - 'Make' => '', - 'Milage' => '', - 'Model' => '', - 'Name' => 'Navn', - 'Notes' => 'Notater', - 'Profile' => 'Profil', - 'PurchasePrice' => '', - 'Responsible' => '', - 'Start' => '', - 'Status' => '', - 'To' => '', - 'Type' => 'Type', - 'Upcoming' => '', - 'VIN' => '', - 'Vehicles' => '', - 'Vin' => '', + 'Attributes' => '', + 'Costs' => '', + 'Date' => 'Dato', + 'Description' => '', + 'Driver' => '', + 'Drivers' => '', + 'End' => '', + 'Files' => 'Filer', + 'From' => '', + 'History' => '', + 'Inspections' => '', + 'LeasingFee' => '', + 'Make' => '', + 'Milage' => '', + 'Model' => '', + 'Name' => 'Navn', + 'Notes' => 'Notater', + 'Profile' => 'Profil', + 'PurchasePrice' => '', + 'Responsible' => '', + 'Start' => '', + 'Status' => '', + 'To' => '', + 'Type' => 'Type', + 'Upcoming' => '', + 'VIN' => '', + 'Vehicles' => '', + 'Vin' => '', ]]; diff --git a/Theme/Backend/Lang/pl.lang.php b/Theme/Backend/Lang/pl.lang.php index e8a7e03..ef34d30 100755 --- a/Theme/Backend/Lang/pl.lang.php +++ b/Theme/Backend/Lang/pl.lang.php @@ -13,32 +13,32 @@ declare(strict_types=1); return ['FleetManagement' => [ - 'Attributes' => '', - 'Costs' => '', - 'Date' => 'Data', - 'Description' => '', - 'Driver' => '', - 'Drivers' => '', - 'End' => '', - 'Files' => 'Pliki', - 'From' => '', - 'History' => '', - 'Inspections' => '', - 'LeasingFee' => '', - 'Make' => '', - 'Milage' => '', - 'Model' => '', - 'Name' => 'Nazwa', - 'Notes' => 'Notatki', - 'Profile' => 'Profil', - 'PurchasePrice' => '', - 'Responsible' => '', - 'Start' => '', - 'Status' => '', - 'To' => '', - 'Type' => 'Rodzaj', - 'Upcoming' => '', - 'VIN' => '', - 'Vehicles' => '', - 'Vin' => '', + 'Attributes' => '', + 'Costs' => '', + 'Date' => 'Data', + 'Description' => '', + 'Driver' => '', + 'Drivers' => '', + 'End' => '', + 'Files' => 'Pliki', + 'From' => '', + 'History' => '', + 'Inspections' => '', + 'LeasingFee' => '', + 'Make' => '', + 'Milage' => '', + 'Model' => '', + 'Name' => 'Nazwa', + 'Notes' => 'Notatki', + 'Profile' => 'Profil', + 'PurchasePrice' => '', + 'Responsible' => '', + 'Start' => '', + 'Status' => '', + 'To' => '', + 'Type' => 'Rodzaj', + 'Upcoming' => '', + 'VIN' => '', + 'Vehicles' => '', + 'Vin' => '', ]]; diff --git a/Theme/Backend/Lang/pt.lang.php b/Theme/Backend/Lang/pt.lang.php index 0bd5a85..d12c69f 100755 --- a/Theme/Backend/Lang/pt.lang.php +++ b/Theme/Backend/Lang/pt.lang.php @@ -13,32 +13,32 @@ declare(strict_types=1); return ['FleetManagement' => [ - 'Attributes' => '', - 'Costs' => '', - 'Date' => 'Encontro', - 'Description' => '', - 'Driver' => '', - 'Drivers' => '', - 'End' => '', - 'Files' => 'arquivos', - 'From' => '', - 'History' => '', - 'Inspections' => '', - 'LeasingFee' => '', - 'Make' => '', - 'Milage' => '', - 'Model' => '', - 'Name' => 'Nome', - 'Notes' => 'Notas', - 'Profile' => 'Perfil', - 'PurchasePrice' => '', - 'Responsible' => '', - 'Start' => '', - 'Status' => '', - 'To' => '', - 'Type' => 'Modelo', - 'Upcoming' => '', - 'VIN' => '', - 'Vehicles' => '', - 'Vin' => '', + 'Attributes' => '', + 'Costs' => '', + 'Date' => 'Encontro', + 'Description' => '', + 'Driver' => '', + 'Drivers' => '', + 'End' => '', + 'Files' => 'arquivos', + 'From' => '', + 'History' => '', + 'Inspections' => '', + 'LeasingFee' => '', + 'Make' => '', + 'Milage' => '', + 'Model' => '', + 'Name' => 'Nome', + 'Notes' => 'Notas', + 'Profile' => 'Perfil', + 'PurchasePrice' => '', + 'Responsible' => '', + 'Start' => '', + 'Status' => '', + 'To' => '', + 'Type' => 'Modelo', + 'Upcoming' => '', + 'VIN' => '', + 'Vehicles' => '', + 'Vin' => '', ]]; diff --git a/Theme/Backend/Lang/ru.lang.php b/Theme/Backend/Lang/ru.lang.php index 4ab150a..96ae96b 100755 --- a/Theme/Backend/Lang/ru.lang.php +++ b/Theme/Backend/Lang/ru.lang.php @@ -13,32 +13,32 @@ declare(strict_types=1); return ['FleetManagement' => [ - 'Attributes' => '', - 'Costs' => '', - 'Date' => 'Дата', - 'Description' => '', - 'Driver' => '', - 'Drivers' => '', - 'End' => '', - 'Files' => 'Файлы', - 'From' => '', - 'History' => '', - 'Inspections' => '', - 'LeasingFee' => '', - 'Make' => '', - 'Milage' => '', - 'Model' => '', - 'Name' => 'Имя', - 'Notes' => 'Примечания', - 'Profile' => 'Профиль', - 'PurchasePrice' => '', - 'Responsible' => '', - 'Start' => '', - 'Status' => '', - 'To' => '', - 'Type' => 'Тип', - 'Upcoming' => '', - 'VIN' => '', - 'Vehicles' => '', - 'Vin' => '', + 'Attributes' => '', + 'Costs' => '', + 'Date' => 'Дата', + 'Description' => '', + 'Driver' => '', + 'Drivers' => '', + 'End' => '', + 'Files' => 'Файлы', + 'From' => '', + 'History' => '', + 'Inspections' => '', + 'LeasingFee' => '', + 'Make' => '', + 'Milage' => '', + 'Model' => '', + 'Name' => 'Имя', + 'Notes' => 'Примечания', + 'Profile' => 'Профиль', + 'PurchasePrice' => '', + 'Responsible' => '', + 'Start' => '', + 'Status' => '', + 'To' => '', + 'Type' => 'Тип', + 'Upcoming' => '', + 'VIN' => '', + 'Vehicles' => '', + 'Vin' => '', ]]; diff --git a/Theme/Backend/Lang/sv.lang.php b/Theme/Backend/Lang/sv.lang.php index 69b4855..4bf23b8 100755 --- a/Theme/Backend/Lang/sv.lang.php +++ b/Theme/Backend/Lang/sv.lang.php @@ -13,32 +13,32 @@ declare(strict_types=1); return ['FleetManagement' => [ - 'Attributes' => '', - 'Costs' => '', - 'Date' => 'Datum', - 'Description' => '', - 'Driver' => '', - 'Drivers' => '', - 'End' => '', - 'Files' => 'Filer', - 'From' => '', - 'History' => '', - 'Inspections' => '', - 'LeasingFee' => '', - 'Make' => '', - 'Milage' => '', - 'Model' => '', - 'Name' => 'namn', - 'Notes' => 'Anteckningar', - 'Profile' => 'Profil', - 'PurchasePrice' => '', - 'Responsible' => '', - 'Start' => '', - 'Status' => '', - 'To' => '', - 'Type' => 'Typ', - 'Upcoming' => '', - 'VIN' => '', - 'Vehicles' => '', - 'Vin' => '', + 'Attributes' => '', + 'Costs' => '', + 'Date' => 'Datum', + 'Description' => '', + 'Driver' => '', + 'Drivers' => '', + 'End' => '', + 'Files' => 'Filer', + 'From' => '', + 'History' => '', + 'Inspections' => '', + 'LeasingFee' => '', + 'Make' => '', + 'Milage' => '', + 'Model' => '', + 'Name' => 'namn', + 'Notes' => 'Anteckningar', + 'Profile' => 'Profil', + 'PurchasePrice' => '', + 'Responsible' => '', + 'Start' => '', + 'Status' => '', + 'To' => '', + 'Type' => 'Typ', + 'Upcoming' => '', + 'VIN' => '', + 'Vehicles' => '', + 'Vin' => '', ]]; diff --git a/Theme/Backend/Lang/th.lang.php b/Theme/Backend/Lang/th.lang.php index 4c80620..60e3927 100755 --- a/Theme/Backend/Lang/th.lang.php +++ b/Theme/Backend/Lang/th.lang.php @@ -13,32 +13,32 @@ declare(strict_types=1); return ['FleetManagement' => [ - 'Attributes' => '', - 'Costs' => '', - 'Date' => 'วันที่', - 'Description' => '', - 'Driver' => '', - 'Drivers' => '', - 'End' => '', - 'Files' => 'ไฟล์', - 'From' => '', - 'History' => '', - 'Inspections' => '', - 'LeasingFee' => '', - 'Make' => '', - 'Milage' => '', - 'Model' => '', - 'Name' => 'ชื่อ', - 'Notes' => 'หมายเหตุ', - 'Profile' => 'ประวัติโดยย่อ', - 'PurchasePrice' => '', - 'Responsible' => '', - 'Start' => '', - 'Status' => '', - 'To' => '', - 'Type' => 'พิมพ์', - 'Upcoming' => '', - 'VIN' => '', - 'Vehicles' => '', - 'Vin' => '', + 'Attributes' => '', + 'Costs' => '', + 'Date' => 'วันที่', + 'Description' => '', + 'Driver' => '', + 'Drivers' => '', + 'End' => '', + 'Files' => 'ไฟล์', + 'From' => '', + 'History' => '', + 'Inspections' => '', + 'LeasingFee' => '', + 'Make' => '', + 'Milage' => '', + 'Model' => '', + 'Name' => 'ชื่อ', + 'Notes' => 'หมายเหตุ', + 'Profile' => 'ประวัติโดยย่อ', + 'PurchasePrice' => '', + 'Responsible' => '', + 'Start' => '', + 'Status' => '', + 'To' => '', + 'Type' => 'พิมพ์', + 'Upcoming' => '', + 'VIN' => '', + 'Vehicles' => '', + 'Vin' => '', ]]; diff --git a/Theme/Backend/Lang/tr.lang.php b/Theme/Backend/Lang/tr.lang.php index 2522938..c1b9b2a 100755 --- a/Theme/Backend/Lang/tr.lang.php +++ b/Theme/Backend/Lang/tr.lang.php @@ -13,32 +13,32 @@ declare(strict_types=1); return ['FleetManagement' => [ - 'Attributes' => '', - 'Costs' => '', - 'Date' => 'Tarih', - 'Description' => '', - 'Driver' => '', - 'Drivers' => '', - 'End' => '', - 'Files' => 'Dosyalar', - 'From' => '', - 'History' => '', - 'Inspections' => '', - 'LeasingFee' => '', - 'Make' => '', - 'Milage' => '', - 'Model' => '', - 'Name' => 'İsim', - 'Notes' => 'Notalar', - 'Profile' => 'Profil', - 'PurchasePrice' => '', - 'Responsible' => '', - 'Start' => '', - 'Status' => '', - 'To' => '', - 'Type' => 'Tip', - 'Upcoming' => '', - 'VIN' => '', - 'Vehicles' => '', - 'Vin' => '', + 'Attributes' => '', + 'Costs' => '', + 'Date' => 'Tarih', + 'Description' => '', + 'Driver' => '', + 'Drivers' => '', + 'End' => '', + 'Files' => 'Dosyalar', + 'From' => '', + 'History' => '', + 'Inspections' => '', + 'LeasingFee' => '', + 'Make' => '', + 'Milage' => '', + 'Model' => '', + 'Name' => 'İsim', + 'Notes' => 'Notalar', + 'Profile' => 'Profil', + 'PurchasePrice' => '', + 'Responsible' => '', + 'Start' => '', + 'Status' => '', + 'To' => '', + 'Type' => 'Tip', + 'Upcoming' => '', + 'VIN' => '', + 'Vehicles' => '', + 'Vin' => '', ]]; diff --git a/Theme/Backend/Lang/uk.lang.php b/Theme/Backend/Lang/uk.lang.php index 9ca4241..93ee1a3 100755 --- a/Theme/Backend/Lang/uk.lang.php +++ b/Theme/Backend/Lang/uk.lang.php @@ -13,32 +13,32 @@ declare(strict_types=1); return ['FleetManagement' => [ - 'Attributes' => '', - 'Costs' => '', - 'Date' => 'Дата', - 'Description' => '', - 'Driver' => '', - 'Drivers' => '', - 'End' => '', - 'Files' => 'Файли', - 'From' => '', - 'History' => '', - 'Inspections' => '', - 'LeasingFee' => '', - 'Make' => '', - 'Milage' => '', - 'Model' => '', - 'Name' => 'Назва', - 'Notes' => 'Ноти', - 'Profile' => 'Профіль', - 'PurchasePrice' => '', - 'Responsible' => '', - 'Start' => '', - 'Status' => '', - 'To' => '', - 'Type' => 'Тип', - 'Upcoming' => '', - 'VIN' => '', - 'Vehicles' => '', - 'Vin' => '', + 'Attributes' => '', + 'Costs' => '', + 'Date' => 'Дата', + 'Description' => '', + 'Driver' => '', + 'Drivers' => '', + 'End' => '', + 'Files' => 'Файли', + 'From' => '', + 'History' => '', + 'Inspections' => '', + 'LeasingFee' => '', + 'Make' => '', + 'Milage' => '', + 'Model' => '', + 'Name' => 'Назва', + 'Notes' => 'Ноти', + 'Profile' => 'Профіль', + 'PurchasePrice' => '', + 'Responsible' => '', + 'Start' => '', + 'Status' => '', + 'To' => '', + 'Type' => 'Тип', + 'Upcoming' => '', + 'VIN' => '', + 'Vehicles' => '', + 'Vin' => '', ]]; diff --git a/Theme/Backend/Lang/zh.lang.php b/Theme/Backend/Lang/zh.lang.php index 6935c38..e57c5a6 100755 --- a/Theme/Backend/Lang/zh.lang.php +++ b/Theme/Backend/Lang/zh.lang.php @@ -13,32 +13,32 @@ declare(strict_types=1); return ['FleetManagement' => [ - 'Attributes' => '', - 'Costs' => '', - 'Date' => '日期', - 'Description' => '', - 'Driver' => '', - 'Drivers' => '', - 'End' => '', - 'Files' => '文件', - 'From' => '', - 'History' => '', - 'Inspections' => '', - 'LeasingFee' => '', - 'Make' => '', - 'Milage' => '', - 'Model' => '', - 'Name' => '名称', - 'Notes' => '笔记', - 'Profile' => '轮廓', - 'PurchasePrice' => '', - 'Responsible' => '', - 'Start' => '', - 'Status' => '', - 'To' => '', - 'Type' => '类型', - 'Upcoming' => '', - 'VIN' => '', - 'Vehicles' => '', - 'Vin' => '', + 'Attributes' => '', + 'Costs' => '', + 'Date' => '日期', + 'Description' => '', + 'Driver' => '', + 'Drivers' => '', + 'End' => '', + 'Files' => '文件', + 'From' => '', + 'History' => '', + 'Inspections' => '', + 'LeasingFee' => '', + 'Make' => '', + 'Milage' => '', + 'Model' => '', + 'Name' => '名称', + 'Notes' => '笔记', + 'Profile' => '轮廓', + 'PurchasePrice' => '', + 'Responsible' => '', + 'Start' => '', + 'Status' => '', + 'To' => '', + 'Type' => '类型', + 'Upcoming' => '', + 'VIN' => '', + 'Vehicles' => '', + 'Vin' => '', ]]; diff --git a/Theme/Backend/attribute-type.tpl.php b/Theme/Backend/attribute-type.tpl.php index 5f8fec5..59c9afc 100755 --- a/Theme/Backend/attribute-type.tpl.php +++ b/Theme/Backend/attribute-type.tpl.php @@ -86,7 +86,7 @@ echo $this->data['nav']->render(); ?> close settings - getLanguage())); ?> + language)); ?> content; ?> diff --git a/Theme/Backend/driver-list.tpl.php b/Theme/Backend/driver-list.tpl.php index b8c20c4..8dbc9db 100644 --- a/Theme/Backend/driver-list.tpl.php +++ b/Theme/Backend/driver-list.tpl.php @@ -24,41 +24,41 @@ echo $this->data['nav']->render(); ?>
getHtml('Drivers'); ?>download
- +
getHtml('ID', '0', '0'); ?> - getHtml('Status'); ?> - getHtml('Name'); ?> -
diff --git a/Theme/Backend/driver-profile.tpl.php b/Theme/Backend/driver-profile.tpl.php index 4f9bcfa..9e012ec 100644 --- a/Theme/Backend/driver-profile.tpl.php +++ b/Theme/Backend/driver-profile.tpl.php @@ -17,17 +17,15 @@ use Modules\FleetManagement\Models\Driver\NullDriver; use Modules\Media\Models\NullMedia; use phpOMS\Uri\UriFactory; -$countryCodes = \phpOMS\Localization\ISO3166TwoEnum::getConstants(); -$countries = \phpOMS\Localization\ISO3166NameEnum::getConstants(); -$driverStatus = DriverStatus::getConstants(); +$countryCodes = \phpOMS\Localization\ISO3166TwoEnum::getConstants(); +$countries = \phpOMS\Localization\ISO3166NameEnum::getConstants(); +$driverStatus = DriverStatus::getConstants(); /** * @var \Modules\FleetManagement\Models\Driver $driver */ -$driver = $this->data['driver'] ?? new NullDriver(); -$files = $driver->files; -$driverImage = $this->data['driverImage'] ?? new NullMedia(); -$attributeView = $this->data['attributeView']; +$driver = $this->data['driver'] ?? new NullDriver(); +$driverImage = $this->data['driverImage'] ?? new NullMedia(); /** * @var \phpOMS\Views\View $this @@ -98,7 +96,7 @@ echo $this->data['nav']->render(); request->uri->fragment === 'c-tab-2' ? ' checked' : ''; ?>>
- render( + data['attributeView']->render( $driver->attributes, $this->data['attributeTypes'] ?? [], [], @@ -201,7 +199,7 @@ echo $this->data['nav']->render();
0) : ?>
diff --git a/Theme/Backend/driver-view.tpl.php b/Theme/Backend/driver-view.tpl.php new file mode 100644 index 0000000..9e012ec --- /dev/null +++ b/Theme/Backend/driver-view.tpl.php @@ -0,0 +1,326 @@ +data['driver'] ?? new NullDriver(); +$driverImage = $this->data['driverImage'] ?? new NullMedia(); + +/** + * @var \phpOMS\Views\View $this + */ +echo $this->data['nav']->render(); +?> +
+
+ +
+
+ request->uri->fragment === 'c-tab-1' ? ' checked' : ''; ?>> +
+
+
+
+
getHtml('Profile'); ?>
+
+
+ + +
+ +
+ + +
+ +
+ + +
+
+
+ id === 0) : ?> + + + + +
+
+
+ +
+
+
+ +
+
+
+
+
+ + request->uri->fragment === 'c-tab-2' ? ' checked' : ''; ?>> +
+
+ data['attributeView']->render( + $driver->attributes, + $this->data['attributeTypes'] ?? [], + [], + '{/api}fleet/driver/attribute', + $driver->id + ); + ?> +
+
+ + request->uri->fragment === 'c-tab-3' ? ' checked' : ''; ?>> +
+ data['media-upload']->render('driver-file', 'files', '', $driver->files); ?> +
+ + request->uri->fragment === 'c-tab-4' ? ' checked' : ''; ?>> +
+ data['driver-notes']->render('driver-notes', '', $driver->notes); ?> +
+ + request->uri->fragment === 'c-tab-5' ? ' checked' : ''; ?>> +
+ +
+
+
+
getHtml('Upcoming'); ?>
+ + + + + data['inspections'] as $inspection) : + // @todo handle old inspections in the past? maybe use a status?! + if ($inspection->next === null) { + continue; + } + ?> + +
getHtml('Date'); ?> + getHtml('Type'); ?> + getHtml('Responsible'); ?> +
next->format('Y-m-d H:i'); ?> + printHtml($inspection->type->getL11n()); ?> + + +
+
+
+ +
+
+
getHtml('History'); ?>
+ + + + + data['inspections'] as $inspection) : ?> + +
getHtml('Date'); ?> + getHtml('Type'); ?> + getHtml('Responsible'); ?> +
date->format('Y-m-d H:i'); ?> + printHtml($inspection->type->getL11n()); ?> + + +
+
+
+
+
+ + request->uri->fragment === 'c-tab-7' ? ' checked' : ''; ?>> +
+
+
+
+
+
getHtml('Milage'); ?>
+
+
+ + +
+ +
+ +
+
+ + + + +
+ 0) : ?> + + +
+
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ +

+                                
+
+
+ + + +
+
+
+
+ +
+
+
getHtml('Milage'); ?>download
+
+ + + + + + $value) : ++$c; ?> + + +
+ getHtml('ID', '0', '0'); ?> + getHtml('Driver'); ?>expand_lessexpand_more + getHtml('Milage'); ?>expand_lessexpand_more + getHtml('Start'); ?>expand_lessexpand_more + getHtml('End'); ?>expand_lessexpand_more +
+ settings + type->isRequired) : ?> + + + + + + + + id; ?> + printHtml($value->type->getL11n()); ?> + value->getValue() instanceof \DateTime ? $value->value->getValue()->format('Y-m-d') : $this->printHtml((string) $value->value->getValue()); ?> + printHtml($value->value->unit); ?> + printHtml($value->value->unit); ?> + + +
getHtml('Empty', '0', '0'); ?> + +
+
+
+
+
+
+ + request->uri->fragment === 'c-tab-8' ? ' checked' : ''; ?>> +
+
+
+
+
+
+
+
\ No newline at end of file diff --git a/Theme/Backend/vehicle-list.tpl.php b/Theme/Backend/vehicle-list.tpl.php index 7547ec8..741d23d 100755 --- a/Theme/Backend/vehicle-list.tpl.php +++ b/Theme/Backend/vehicle-list.tpl.php @@ -24,53 +24,53 @@ echo $this->data['nav']->render(); ?>
getHtml('Vehicles'); ?>download
- +
getHtml('ID', '0', '0'); ?> - getHtml('Status'); ?> - getHtml('Name'); ?> - getHtml('Type'); ?> -
diff --git a/Theme/Backend/vehicle-profile.tpl.php b/Theme/Backend/vehicle-profile.tpl.php index 0e39a2f..6d9ce7b 100755 --- a/Theme/Backend/vehicle-profile.tpl.php +++ b/Theme/Backend/vehicle-profile.tpl.php @@ -24,11 +24,9 @@ $vehicleStatus = VehicleStatus::getConstants(); /** * @var \Modules\FleetManagement\Models\Vehicle $vehicle */ -$vehicle = $this->data['vehicle'] ?? new NullVehicle(); -$files = $vehicle->files; -$vehicleImage = $this->data['vehicleImage'] ?? new NullMedia(); -$vehicleTypes = $this->data['types'] ?? []; -$attributeView = $this->data['attributeView']; +$vehicle = $this->data['vehicle'] ?? new NullVehicle(); +$vehicleImage = $this->data['vehicleImage'] ?? new NullMedia(); +$vehicleTypes = $this->data['types'] ?? []; /** * @var \phpOMS\Views\View $this @@ -143,7 +141,7 @@ echo $this->data['nav']->render(); request->uri->fragment === 'c-tab-2' ? ' checked' : ''; ?>>
- render( + data['attributeView']->render( $vehicle->attributes, $this->data['attributeTypes'] ?? [], $this->data['units'] ?? [], @@ -246,7 +244,7 @@ echo $this->data['nav']->render();
0) : ?>
diff --git a/Theme/Backend/vehicle-view.tpl.php b/Theme/Backend/vehicle-view.tpl.php new file mode 100644 index 0000000..158730b --- /dev/null +++ b/Theme/Backend/vehicle-view.tpl.php @@ -0,0 +1,385 @@ +data['vehicle'] ?? new NullVehicle(); +$vehicleImage = $this->data['vehicleImage'] ?? new NullMedia(); +$vehicleTypes = $this->data['types'] ?? []; + +/** + * @var \phpOMS\Views\View $this + */ +echo $this->data['nav']->render(); +?> +
+
+ +
+
+ request->uri->fragment === 'c-tab-1' ? ' checked' : ''; ?>> +
+
+
+
+
getHtml('Profile'); ?>
+
+
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+
+
+ id === 0) : ?> + + + + +
+
+
+ +
+
+
+ +
+
+
+
+
+ + request->uri->fragment === 'c-tab-2' ? ' checked' : ''; ?>> +
+
+ data['attributeView']->render( + $vehicle->attributes, + $this->data['attributeTypes'] ?? [], + $this->data['units'] ?? [], + '{/api}fleet/vehicle/attribute', + $vehicle->id + ); + ?> +
+
+ + request->uri->fragment === 'c-tab-3' ? ' checked' : ''; ?>> +
+ data['media-upload']->render('vehicle-file', 'files', '', $vehicle->files); ?> +
+ + request->uri->fragment === 'c-tab-4' ? ' checked' : ''; ?>> +
+ data['vehicle-notes']->render('vehicle-notes', '', $vehicle->notes); ?> +
+ + request->uri->fragment === 'c-tab-5' ? ' checked' : ''; ?>> +
+ +
+
+
+
getHtml('Upcoming'); ?>
+ + + + + data['inspections'] as $inspection) : + // @todo handle old inspections in the past? maybe use a status?! + if ($inspection->next === null) { + continue; + } + + ++$count; + ?> + +
getHtml('Date'); ?> + getHtml('Type'); ?> + getHtml('Responsible'); ?> +
next->format('Y-m-d H:i'); ?> + printHtml($inspection->type->getL11n()); ?> + + + +
getHtml('Empty', '0', '0'); ?> + +
+
+
+ +
+
+
getHtml('History'); ?>
+ + + + + data['inspections'] as $inspection) : + ++$count; + ?> + +
getHtml('Date'); ?> + getHtml('Type'); ?> + getHtml('Responsible'); ?> +
date->format('Y-m-d H:i'); ?> + printHtml($inspection->type->getL11n()); ?> + + + +
getHtml('Empty', '0', '0'); ?> + +
+
+
+
+
+ + request->uri->fragment === 'c-tab-7' ? ' checked' : ''; ?>> +
+
+
+
+
+
getHtml('Milage'); ?>
+
+
+ + +
+ +
+ +
+
+ + + + +
+ 0) : ?> + + +
+
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ +

+                                
+
+
+ + + +
+
+
+
+ +
+
+
getHtml('Milage'); ?>download
+
+ + + + + + $value) : ++$c; ?> + + +
+ getHtml('ID', '0', '0'); ?> + getHtml('Driver'); ?>expand_lessexpand_more + getHtml('Milage'); ?>expand_lessexpand_more + getHtml('Start'); ?>expand_lessexpand_more + getHtml('End'); ?>expand_lessexpand_more +
+ settings + type->isRequired) : ?> + + + + + + + + id; ?> + printHtml($value->type->getL11n()); ?> + value->getValue() instanceof \DateTime ? $value->value->getValue()->format('Y-m-d') : $this->printHtml((string) $value->value->getValue()); ?> + printHtml($value->value->unit); ?> + printHtml($value->value->unit); ?> + + +
getHtml('Empty', '0', '0'); ?> + +
+
+
+
+
+
+ + request->uri->fragment === 'c-tab-8' ? ' checked' : ''; ?>> +
+
+
+
+
+
+
+
\ No newline at end of file diff --git a/tests/Autoloader.php b/tests/Autoloader.php index 860ed60..e611b58 100755 --- a/tests/Autoloader.php +++ b/tests/Autoloader.php @@ -75,8 +75,8 @@ final class Autoloader */ public static function defaultAutoloader(string $class) : void { - $class = \ltrim($class, '\\'); - $class = \strtr($class, '_\\', '//'); + $class = \ltrim($class, '\\'); + $class = \strtr($class, '_\\', '//'); if (\stripos($class, 'Web/Backend') !== false || \stripos($class, 'Web/Api') !== false) { $class = \is_dir(__DIR__ . '/Web') ? $class : \str_replace('Web/', 'MainRepository/Web/', $class); diff --git a/tests/Bootstrap.php b/tests/Bootstrap.php index ddc049d..723042e 100755 --- a/tests/Bootstrap.php +++ b/tests/Bootstrap.php @@ -1,4 +1,15 @@ [ + 'db' => [ 'core' => [ 'masters' => [ - 'admin' => [ + 'admin' => [ 'db' => 'mysql', /* db type */ 'host' => '127.0.0.1', /* db host address */ 'port' => '3306', /* db host port */ @@ -80,7 +91,7 @@ $CONFIG = [ 'weight' => 1000, /* db table prefix */ 'datetimeformat' => 'Y-m-d H:i:s', ], - 'insert' => [ + 'insert' => [ 'db' => 'mysql', /* db type */ 'host' => '127.0.0.1', /* db host address */ 'port' => '3306', /* db host port */ @@ -90,7 +101,7 @@ $CONFIG = [ 'weight' => 1000, /* db table prefix */ 'datetimeformat' => 'Y-m-d H:i:s', ], - 'select' => [ + 'select' => [ 'db' => 'mysql', /* db type */ 'host' => '127.0.0.1', /* db host address */ 'port' => '3306', /* db host port */ @@ -100,7 +111,7 @@ $CONFIG = [ 'weight' => 1000, /* db table prefix */ 'datetimeformat' => 'Y-m-d H:i:s', ], - 'update' => [ + 'update' => [ 'db' => 'mysql', /* db type */ 'host' => '127.0.0.1', /* db host address */ 'port' => '3306', /* db host port */ @@ -110,7 +121,7 @@ $CONFIG = [ 'weight' => 1000, /* db table prefix */ 'datetimeformat' => 'Y-m-d H:i:s', ], - 'delete' => [ + 'delete' => [ 'db' => 'mysql', /* db type */ 'host' => '127.0.0.1', /* db host address */ 'port' => '3306', /* db host port */ @@ -120,7 +131,7 @@ $CONFIG = [ 'weight' => 1000, /* db table prefix */ 'datetimeformat' => 'Y-m-d H:i:s', ], - 'schema' => [ + 'schema' => [ 'db' => 'mysql', /* db type */ 'host' => '127.0.0.1', /* db host address */ 'port' => '3306', /* db host port */ @@ -132,7 +143,7 @@ $CONFIG = [ ], ], 'postgresql' => [ - 'admin' => [ + 'admin' => [ 'db' => 'pgsql', /* db type */ 'host' => '127.0.0.1', /* db host address */ 'port' => '5432', /* db host port */ @@ -142,7 +153,7 @@ $CONFIG = [ 'weight' => 1000, /* db table prefix */ 'datetimeformat' => 'Y-m-d H:i:s', ], - 'insert' => [ + 'insert' => [ 'db' => 'pgsql', /* db type */ 'host' => '127.0.0.1', /* db host address */ 'port' => '5432', /* db host port */ @@ -152,7 +163,7 @@ $CONFIG = [ 'weight' => 1000, /* db table prefix */ 'datetimeformat' => 'Y-m-d H:i:s', ], - 'select' => [ + 'select' => [ 'db' => 'pgsql', /* db type */ 'host' => '127.0.0.1', /* db host address */ 'port' => '5432', /* db host port */ @@ -162,7 +173,7 @@ $CONFIG = [ 'weight' => 1000, /* db table prefix */ 'datetimeformat' => 'Y-m-d H:i:s', ], - 'update' => [ + 'update' => [ 'db' => 'pgsql', /* db type */ 'host' => '127.0.0.1', /* db host address */ 'port' => '5432', /* db host port */ @@ -172,7 +183,7 @@ $CONFIG = [ 'weight' => 1000, /* db table prefix */ 'datetimeformat' => 'Y-m-d H:i:s', ], - 'delete' => [ + 'delete' => [ 'db' => 'pgsql', /* db type */ 'host' => '127.0.0.1', /* db host address */ 'port' => '5432', /* db host port */ @@ -182,7 +193,7 @@ $CONFIG = [ 'weight' => 1000, /* db table prefix */ 'datetimeformat' => 'Y-m-d H:i:s', ], - 'schema' => [ + 'schema' => [ 'db' => 'pgsql', /* db type */ 'host' => '127.0.0.1', /* db host address */ 'port' => '5432', /* db host port */ @@ -194,37 +205,37 @@ $CONFIG = [ ], ], 'sqlite' => [ - 'admin' => [ + 'admin' => [ 'db' => 'sqlite', /* db type */ 'database' => __DIR__ . '/../Karaka/phpOMS/Localization/Defaults/localization.sqlite', /* db name */ 'weight' => 1000, /* db table prefix */ 'datetimeformat' => 'Y-m-d H:i:s', ], - 'insert' => [ + 'insert' => [ 'db' => 'sqlite', /* db type */ 'database' => __DIR__ . '/../Karaka/phpOMS/Localization/Defaults/localization.sqlite', /* db name */ 'weight' => 1000, /* db table prefix */ 'datetimeformat' => 'Y-m-d H:i:s', ], - 'select' => [ + 'select' => [ 'db' => 'sqlite', /* db type */ 'database' => __DIR__ . '/../Karaka/phpOMS/Localization/Defaults/localization.sqlite', /* db name */ 'weight' => 1000, /* db table prefix */ 'datetimeformat' => 'Y-m-d H:i:s', ], - 'update' => [ + 'update' => [ 'db' => 'sqlite', /* db type */ 'database' => __DIR__ . '/../Karaka/phpOMS/Localization/Defaults/localization.sqlite', /* db name */ 'weight' => 1000, /* db table prefix */ 'datetimeformat' => 'Y-m-d H:i:s', ], - 'delete' => [ + 'delete' => [ 'db' => 'sqlite', /* db type */ 'database' => __DIR__ . '/../Karaka/phpOMS/Localization/Defaults/localization.sqlite', /* db name */ 'weight' => 1000, /* db table prefix */ 'datetimeformat' => 'Y-m-d H:i:s', ], - 'schema' => [ + 'schema' => [ 'db' => 'sqlite', /* db type */ 'database' => __DIR__ . '/../Karaka/phpOMS/Localization/Defaults/localization.sqlite', /* db name */ 'weight' => 1000, /* db table prefix */ @@ -232,7 +243,7 @@ $CONFIG = [ ], ], 'mssql' => [ - 'admin' => [ + 'admin' => [ 'db' => 'mssql', /* db type */ 'host' => '127.0.0.1', /* db host address */ 'port' => '1433', /* db host port */ @@ -242,7 +253,7 @@ $CONFIG = [ 'weight' => 1000, /* db table prefix */ 'datetimeformat' => 'Y-m-d H:i:s', ], - 'insert' => [ + 'insert' => [ 'db' => 'mssql', /* db type */ 'host' => '127.0.0.1', /* db host address */ 'port' => '1433', /* db host port */ @@ -252,7 +263,7 @@ $CONFIG = [ 'weight' => 1000, /* db table prefix */ 'datetimeformat' => 'Y-m-d H:i:s', ], - 'select' => [ + 'select' => [ 'db' => 'mssql', /* db type */ 'host' => '127.0.0.1', /* db host address */ 'port' => '1433', /* db host port */ @@ -262,7 +273,7 @@ $CONFIG = [ 'weight' => 1000, /* db table prefix */ 'datetimeformat' => 'Y-m-d H:i:s', ], - 'update' => [ + 'update' => [ 'db' => 'mssql', /* db type */ 'host' => '127.0.0.1', /* db host address */ 'port' => '1433', /* db host port */ @@ -272,7 +283,7 @@ $CONFIG = [ 'weight' => 1000, /* db table prefix */ 'datetimeformat' => 'Y-m-d H:i:s', ], - 'delete' => [ + 'delete' => [ 'db' => 'mssql', /* db type */ 'host' => '127.0.0.1', /* db host address */ 'port' => '1433', /* db host port */ @@ -282,7 +293,7 @@ $CONFIG = [ 'weight' => 1000, /* db table prefix */ 'datetimeformat' => 'Y-m-d H:i:s', ], - 'schema' => [ + 'schema' => [ 'db' => 'mssql', /* db type */ 'host' => '127.0.0.1', /* db host address */ 'port' => '1433', /* db host port */ @@ -322,16 +333,16 @@ $CONFIG = [ 'password' => '123456', ], ], - 'log' => [ + 'log' => [ 'file' => [ 'path' => __DIR__ . '/Logs', ], ], - 'page' => [ + 'page' => [ 'root' => '/', 'https' => false, ], - 'app' => [ + 'app' => [ 'path' => __DIR__, 'default' => [ 'app' => 'Backend', @@ -350,7 +361,7 @@ $CONFIG = [ ], ], ], - 'socket' => [ + 'socket' => [ 'master' => [ 'host' => '127.0.0.1', 'limit' => 300, @@ -360,7 +371,7 @@ $CONFIG = [ 'language' => [ 'en', ], - 'apis' => [ + 'apis' => [ ], ]; diff --git a/tests/Controller/Api/ApiControllerAttributeTrait.php b/tests/Controller/Api/ApiControllerAttributeTrait.php index 4d5d8ff..6826f38 100644 --- a/tests/Controller/Api/ApiControllerAttributeTrait.php +++ b/tests/Controller/Api/ApiControllerAttributeTrait.php @@ -19,7 +19,6 @@ use phpOMS\Localization\ISO639x1Enum; use phpOMS\Message\Http\HttpRequest; use phpOMS\Message\Http\HttpResponse; use phpOMS\Message\Http\RequestStatusCode; -use phpOMS\Uri\HttpUri; include_once __DIR__ . '/../../Autoloader.php'; @@ -32,7 +31,7 @@ trait ApiControllerAttributeTrait public function testApiVehicleAttributeTypeCreate() : void { $response = new HttpResponse(); - $request = new HttpRequest(new HttpUri('')); + $request = new HttpRequest(); $request->header->account = 1; $request->setData('name', 'test_attribute'); @@ -50,7 +49,7 @@ trait ApiControllerAttributeTrait public function testApiVehicleAttributeTypeL11nCreate() : void { $response = new HttpResponse(); - $request = new HttpRequest(new HttpUri('')); + $request = new HttpRequest(); $request->header->account = 1; $request->setData('title', 'DE:2'); @@ -68,7 +67,7 @@ trait ApiControllerAttributeTrait public function testApiVehicleAttributeValueIntCreate() : void { $response = new HttpResponse(); - $request = new HttpRequest(new HttpUri('')); + $request = new HttpRequest(); $request->header->account = 1; $request->setData('default', '1'); @@ -88,7 +87,7 @@ trait ApiControllerAttributeTrait public function testApiVehicleAttributeValueStrCreate() : void { $response = new HttpResponse(); - $request = new HttpRequest(new HttpUri('')); + $request = new HttpRequest(); $request->header->account = 1; $request->setData('type', '1'); @@ -107,7 +106,7 @@ trait ApiControllerAttributeTrait public function testApiVehicleAttributeValueFloatCreate() : void { $response = new HttpResponse(); - $request = new HttpRequest(new HttpUri('')); + $request = new HttpRequest(); $request->header->account = 1; $request->setData('type', '1'); @@ -126,7 +125,7 @@ trait ApiControllerAttributeTrait public function testApiVehicleAttributeValueDatCreate() : void { $response = new HttpResponse(); - $request = new HttpRequest(new HttpUri('')); + $request = new HttpRequest(); $request->header->account = 1; $request->setData('type', '1'); @@ -145,7 +144,7 @@ trait ApiControllerAttributeTrait public function testApiVehicleAttributeCreate() : void { $response = new HttpResponse(); - $request = new HttpRequest(new HttpUri('')); + $request = new HttpRequest(); $request->header->account = 1; $request->setData('ref', '1'); @@ -163,7 +162,7 @@ trait ApiControllerAttributeTrait public function testApiVehicleAttributeValueCreateInvalidData() : void { $response = new HttpResponse(); - $request = new HttpRequest(new HttpUri('')); + $request = new HttpRequest(); $request->header->account = 1; $request->setData('invalid', '1'); @@ -179,7 +178,7 @@ trait ApiControllerAttributeTrait public function testApiVehicleAttributeTypeCreateInvalidData() : void { $response = new HttpResponse(); - $request = new HttpRequest(new HttpUri('')); + $request = new HttpRequest(); $request->header->account = 1; $request->setData('invalid', '1'); @@ -195,7 +194,7 @@ trait ApiControllerAttributeTrait public function testApiVehicleAttributeTypeL11nCreateInvalidData() : void { $response = new HttpResponse(); - $request = new HttpRequest(new HttpUri('')); + $request = new HttpRequest(); $request->header->account = 1; $request->setData('invalid', '1'); @@ -211,7 +210,7 @@ trait ApiControllerAttributeTrait public function testApiVehicleAttributeCreateInvalidData() : void { $response = new HttpResponse(); - $request = new HttpRequest(new HttpUri('')); + $request = new HttpRequest(); $request->header->account = 1; $request->setData('invalid', '1'); diff --git a/tests/Controller/Api/ApiControllerVehicleTrait.php b/tests/Controller/Api/ApiControllerVehicleTrait.php index 3f0c199..27f9168 100644 --- a/tests/Controller/Api/ApiControllerVehicleTrait.php +++ b/tests/Controller/Api/ApiControllerVehicleTrait.php @@ -18,7 +18,6 @@ use Modules\FleetManagement\Models\FuelTypeMapper; use Modules\FleetManagement\Models\VehicleTypeMapper; use phpOMS\Message\Http\HttpRequest; use phpOMS\Message\Http\HttpResponse; -use phpOMS\Uri\HttpUri; use phpOMS\Utils\RnG\Text; trait ApiControllerVehicleTrait @@ -34,7 +33,7 @@ trait ApiControllerVehicleTrait $fuelTypeCount = FuelTypeMapper::count()->execute(); $response = new HttpResponse(); - $request = new HttpRequest(new HttpUri('')); + $request = new HttpRequest(); $LOREM = \array_slice(Text::LOREM_IPSUM, 0, 25); $LOREM_COUNT = \count($LOREM) - 1; diff --git a/tests/Controller/ApiControllerTest.php b/tests/Controller/ApiControllerTest.php index 2ce3eed..efd9256 100755 --- a/tests/Controller/ApiControllerTest.php +++ b/tests/Controller/ApiControllerTest.php @@ -57,13 +57,13 @@ final class ApiControllerTest extends \PHPUnit\Framework\TestCase protected string $appName = 'Api'; }; - $this->app->dbPool = $GLOBALS['dbpool']; - $this->app->unitId = 1; - $this->app->accountManager = new AccountManager($GLOBALS['session']); - $this->app->appSettings = new CoreSettings(); - $this->app->moduleManager = new ModuleManager($this->app, __DIR__ . '/../../../../Modules/'); - $this->app->dispatcher = new Dispatcher($this->app); - $this->app->eventManager = new EventManager($this->app->dispatcher); + $this->app->dbPool = $GLOBALS['dbpool']; + $this->app->unitId = 1; + $this->app->accountManager = new AccountManager($GLOBALS['session']); + $this->app->appSettings = new CoreSettings(); + $this->app->moduleManager = new ModuleManager($this->app, __DIR__ . '/../../../../Modules/'); + $this->app->dispatcher = new Dispatcher($this->app); + $this->app->eventManager = new EventManager($this->app->dispatcher); $this->app->eventManager->importFromFile(__DIR__ . '/../../../../Web/Api/Hooks.php'); $this->app->sessionManager = new HttpSession(36000); $this->app->l11nManager = new L11nManager();