From 55134be23270116d61fffdc3d931125b6bae7709 Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Fri, 12 Apr 2024 00:52:06 +0000 Subject: [PATCH] fix bugs --- Admin/Install/Navigation.install.json | 32 ++--- Controller/ApiDriverController.php | 174 ++++--------------------- Controller/ApiVehicleController.php | 175 ++++---------------------- 3 files changed, 70 insertions(+), 311 deletions(-) diff --git a/Admin/Install/Navigation.install.json b/Admin/Install/Navigation.install.json index bd69cc7..f338690 100755 --- a/Admin/Install/Navigation.install.json +++ b/Admin/Install/Navigation.install.json @@ -19,7 +19,7 @@ "type": 2, "subtype": 1, "name": "Vehicles", - "uri": "{/base}/fleet/vehicle/list?{?}", + "uri": "{/base}/fleet/vehicle/list", "target": "self", "icon": null, "order": 1, @@ -33,7 +33,7 @@ "type": 3, "subtype": 1, "name": "List", - "uri": "{/base}/fleet/vehicle/list?{?}", + "uri": "{/base}/fleet/vehicle/list", "target": "self", "icon": null, "order": 1, @@ -48,7 +48,7 @@ "type": 3, "subtype": 1, "name": "Create", - "uri": "{/base}/fleet/vehicle/create?{?}", + "uri": "{/base}/fleet/vehicle/create", "target": "self", "icon": null, "order": 1, @@ -65,7 +65,7 @@ "type": 2, "subtype": 1, "name": "Drivers", - "uri": "{/base}/fleet/driver/list?{?}", + "uri": "{/base}/fleet/driver/list", "target": "self", "icon": null, "order": 1, @@ -79,7 +79,7 @@ "type": 3, "subtype": 1, "name": "List", - "uri": "{/base}/fleet/driver/list?{?}", + "uri": "{/base}/fleet/driver/list", "target": "self", "icon": null, "order": 1, @@ -94,7 +94,7 @@ "type": 3, "subtype": 1, "name": "Create", - "uri": "{/base}/fleet/driver/create?{?}", + "uri": "{/base}/fleet/driver/create", "target": "self", "icon": null, "order": 1, @@ -111,7 +111,7 @@ "type": 2, "subtype": 1, "name": "Inspections", - "uri": "{/base}/fleet/inspection/list?{?}", + "uri": "{/base}/fleet/inspection/list", "target": "self", "icon": null, "order": 1, @@ -125,7 +125,7 @@ "type": 3, "subtype": 1, "name": "List", - "uri": "{/base}/fleet/inspection/list?{?}", + "uri": "{/base}/fleet/inspection/list", "target": "self", "icon": null, "order": 1, @@ -140,7 +140,7 @@ "type": 3, "subtype": 1, "name": "VehicleInspectionTypes", - "uri": "{/base}/fleet/inspection/vehicle/type/list?{?}", + "uri": "{/base}/fleet/inspection/vehicle/type/list", "target": "self", "icon": null, "order": 5, @@ -155,7 +155,7 @@ "type": 3, "subtype": 1, "name": "DriverInspectionTypes", - "uri": "{/base}/fleet/inspection/driver/type/list?{?}", + "uri": "{/base}/fleet/inspection/driver/type/list", "target": "self", "icon": null, "order": 5, @@ -172,7 +172,7 @@ "type": 2, "subtype": 1, "name": "VehicleAttributes", - "uri": "{/base}/fleet/vehicle/attribute/type/list?{?}", + "uri": "{/base}/fleet/vehicle/attribute/type/list", "target": "self", "icon": null, "order": 5, @@ -186,7 +186,7 @@ "type": 3, "subtype": 1, "name": "Types", - "uri": "{/base}/fleet/vehicle/attribute/type/list?{?}", + "uri": "{/base}/fleet/vehicle/attribute/type/list", "target": "self", "icon": null, "order": 15, @@ -201,7 +201,7 @@ "type": 3, "subtype": 1, "name": "Values", - "uri": "{/base}/fleet/vehicle/attribute/value/list?{?}", + "uri": "{/base}/fleet/vehicle/attribute/value/list", "target": "self", "icon": null, "order": 15, @@ -218,7 +218,7 @@ "type": 2, "subtype": 1, "name": "DriverAttributes", - "uri": "{/base}/fleet/driver/attribute/type/list?{?}", + "uri": "{/base}/fleet/driver/attribute/type/list", "target": "self", "icon": null, "order": 5, @@ -232,7 +232,7 @@ "type": 3, "subtype": 1, "name": "Types", - "uri": "{/base}/fleet/driver/attribute/type/list?{?}", + "uri": "{/base}/fleet/driver/attribute/type/list", "target": "self", "icon": null, "order": 15, @@ -247,7 +247,7 @@ "type": 3, "subtype": 1, "name": "Values", - "uri": "{/base}/fleet/driver/attribute/value/list?{?}", + "uri": "{/base}/fleet/driver/attribute/value/list", "target": "self", "icon": null, "order": 15, diff --git a/Controller/ApiDriverController.php b/Controller/ApiDriverController.php index 776bc41..eb4a901 100644 --- a/Controller/ApiDriverController.php +++ b/Controller/ApiDriverController.php @@ -24,12 +24,8 @@ use Modules\FleetManagement\Models\Driver\DriverStatus; use Modules\FleetManagement\Models\Inspection; use Modules\FleetManagement\Models\InspectionStatus; use Modules\FleetManagement\Models\PermissionCategory; -use Modules\Media\Models\CollectionMapper; -use Modules\Media\Models\MediaMapper; -use Modules\Media\Models\NullMedia; +use Modules\Media\Models\NullCollection; use Modules\Media\Models\PathSettings; -use Modules\Media\Models\Reference; -use Modules\Media\Models\ReferenceMapper; use phpOMS\Account\PermissionType; use phpOMS\Localization\BaseStringL11n; use phpOMS\Localization\BaseStringL11nType; @@ -187,99 +183,29 @@ final class ApiDriverController extends Controller { $path = $this->createDriverDir($driver); - $collection = null; - - if (!empty($uploadedFiles = $request->files)) { - $uploaded = $this->app->moduleManager->get('Media', 'Api')->uploadFiles( + if (!empty($request->files)) { + $this->app->moduleManager->get('Media', 'Api')->uploadFiles( names: [], fileNames: [], - files: $uploadedFiles, + files: $request->files, account: $request->header->account, basePath: __DIR__ . '/../../../Modules/Media/Files' . $path, virtualPath: $path, - pathSettings: PathSettings::FILE_PATH + pathSettings: PathSettings::FILE_PATH, + rel: $driver->id, + mapper: DriverMapper::class, + field: 'files' ); - - foreach ($uploaded as $media) { - $this->createModelRelation( - $request->header->account, - $driver->id, - $media->id, - DriverMapper::class, - 'files', - '', - $request->getOrigin() - ); - - if ($collection === null) { - /** @var \Modules\Media\Models\Collection $collection */ - $collection = MediaMapper::getParentCollection($path)->limit(1)->execute(); - - if ($collection->id === 0) { - $collection = $this->app->moduleManager->get('Media')->createRecursiveMediaCollection( - $path, - $request->header->account, - __DIR__ . '/../../../Modules/Media/Files' . $path - ); - } - } - - $this->createModelRelation( - $request->header->account, - $collection->id, - $media->id, - CollectionMapper::class, - 'sources', - '', - $request->getOrigin() - ); - } } - $mediaFiles = $request->getDataJson('media'); - foreach ($mediaFiles as $file) { - /** @var \Modules\Media\Models\Media $media */ - $media = MediaMapper::get()->where('id', (int) $file)->limit(1)->execute(); - - $this->createModelRelation( + if (!empty($media = $request->getDataJson('media'))) { + $this->app->moduleManager->get('Media', 'Api')->addMediaToCollectionAndModel( $request->header->account, + $media, $driver->id, - $media->id, DriverMapper::class, 'files', - '', - $request->getOrigin() - ); - - $ref = new Reference(); - $ref->name = $media->name; - $ref->source = new NullMedia($media->id); - $ref->createdBy = new NullAccount($request->header->account); - $ref->setVirtualPath($path); - - $this->createModel($request->header->account, $ref, ReferenceMapper::class, 'media_reference', $request->getOrigin()); - - if ($collection === null) { - /** @var \Modules\Media\Models\Collection $collection */ - $collection = MediaMapper::getParentCollection($path)->limit(1)->execute(); - - if ($collection->id === 0) { - $collection = $this->app->moduleManager->get('Media')->createRecursiveMediaCollection( - $path, - $request->header->account, - __DIR__ . '/../../../Modules/Media/Files' . $path - ); - } - } - - $this->createModelRelation( - $request->header->account, - $collection->id, - $ref->id, - CollectionMapper::class, - 'sources', - '', - $request->getOrigin() + $path ); } } @@ -330,85 +256,39 @@ final class ApiDriverController extends Controller $driver = DriverMapper::get()->where('id', (int) $request->getData('driver'))->execute(); $path = $this->createDriverDir($driver); - $uploaded = []; - if (!empty($uploadedFiles = $request->files)) { + $uploaded = new NullCollection(); + if (!empty($request->files)) { $uploaded = $this->app->moduleManager->get('Media', 'Api')->uploadFiles( names: [], fileNames: [], - files: $uploadedFiles, + files: $request->files, account: $request->header->account, basePath: __DIR__ . '/../../../Modules/Media/Files' . $path, virtualPath: $path, pathSettings: PathSettings::FILE_PATH, hasAccountRelation: false, - readContent: $request->getDataBool('parse_content') ?? false + readContent: $request->getDataBool('parse_content') ?? false, + type: $request->getDataInt('type'), + rel: $driver->id, + mapper: DriverMapper::class, + field: 'files' ); - - $collection = null; - foreach ($uploaded as $media) { - $this->createModelRelation( - $request->header->account, - $driver->id, - $media->id, - DriverMapper::class, - 'files', - '', - $request->getOrigin() - ); - - if ($request->hasData('type')) { - $this->createModelRelation( - $request->header->account, - $media->id, - $request->getDataInt('type'), - MediaMapper::class, - 'types', - '', - $request->getOrigin() - ); - } - - if ($collection === null) { - /** @var \Modules\Media\Models\Collection $collection */ - $collection = MediaMapper::getParentCollection($path)->limit(1)->execute(); - - if ($collection->id === 0) { - $collection = $this->app->moduleManager->get('Media')->createRecursiveMediaCollection( - $path, - $request->header->account, - __DIR__ . '/../../../Modules/Media/Files' . $path, - ); - } - } - - $this->createModelRelation( - $request->header->account, - $collection->id, - $media->id, - CollectionMapper::class, - 'sources', - '', - $request->getOrigin() - ); - } } - $mediaFiles = $request->getDataJson('media'); - foreach ($mediaFiles as $media) { - $this->createModelRelation( + if (!empty($media = $request->getDataJson('media'))) { + $this->app->moduleManager->get('Media', 'Api')->addMediaToCollectionAndModel( $request->header->account, + $media, $driver->id, - (int) $media, DriverMapper::class, 'files', - '', - $request->getOrigin() + $path ); } - $this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Media', 'Media added to driver.', [ - 'upload' => $uploaded, - 'media' => $mediaFiles, + $this->fillJsonResponse($request, $response, NotificationLevel::OK, '', $this->app->l11nManager->getText($response->header->l11n->language, '0', '0', 'SuccessfulAdd'), [ + 'upload' => $uploaded->sources, + 'media' => $media, ]); } diff --git a/Controller/ApiVehicleController.php b/Controller/ApiVehicleController.php index b7fc8d0..845d06c 100755 --- a/Controller/ApiVehicleController.php +++ b/Controller/ApiVehicleController.php @@ -14,7 +14,6 @@ declare(strict_types=1); namespace Modules\FleetManagement\Controller; -use Modules\Admin\Models\NullAccount; use Modules\FleetManagement\Models\Driver\NullDriver; use Modules\FleetManagement\Models\FuelTypeL11nMapper; use Modules\FleetManagement\Models\FuelTypeMapper; @@ -31,12 +30,8 @@ use Modules\FleetManagement\Models\VehicleMapper; use Modules\FleetManagement\Models\VehicleStatus; use Modules\FleetManagement\Models\VehicleTypeL11nMapper; use Modules\FleetManagement\Models\VehicleTypeMapper; -use Modules\Media\Models\CollectionMapper; -use Modules\Media\Models\MediaMapper; -use Modules\Media\Models\NullMedia; +use Modules\Media\Models\NullCollection; use Modules\Media\Models\PathSettings; -use Modules\Media\Models\Reference; -use Modules\Media\Models\ReferenceMapper; use phpOMS\Account\PermissionType; use phpOMS\Localization\BaseStringL11n; use phpOMS\Localization\BaseStringL11nType; @@ -562,99 +557,29 @@ final class ApiVehicleController extends Controller { $path = $this->createVehicleDir($vehicle); - $collection = null; - - if (!empty($uploadedFiles = $request->files)) { - $uploaded = $this->app->moduleManager->get('Media', 'Api')->uploadFiles( + if (!empty($request->files)) { + $this->app->moduleManager->get('Media', 'Api')->uploadFiles( names: [], fileNames: [], - files: $uploadedFiles, + files: $request->files, account: $request->header->account, basePath: __DIR__ . '/../../../Modules/Media/Files' . $path, virtualPath: $path, - pathSettings: PathSettings::FILE_PATH + pathSettings: PathSettings::FILE_PATH, + rel: $vehicle->id, + mapper: VehicleMapper::class, + field: 'files' ); - - foreach ($uploaded as $media) { - $this->createModelRelation( - $request->header->account, - $vehicle->id, - $media->id, - VehicleMapper::class, - 'files', - '', - $request->getOrigin() - ); - - if ($collection === null) { - /** @var \Modules\Media\Models\Collection $collection */ - $collection = MediaMapper::getParentCollection($path)->limit(1)->execute(); - - if ($collection->id === 0) { - $collection = $this->app->moduleManager->get('Media')->createRecursiveMediaCollection( - $path, - $request->header->account, - __DIR__ . '/../../../Modules/Media/Files' . $path - ); - } - } - - $this->createModelRelation( - $request->header->account, - $collection->id, - $media->id, - CollectionMapper::class, - 'sources', - '', - $request->getOrigin() - ); - } } - $mediaFiles = $request->getDataJson('media'); - foreach ($mediaFiles as $file) { - /** @var \Modules\Media\Models\Media $media */ - $media = MediaMapper::get()->where('id', (int) $file)->limit(1)->execute(); - - $this->createModelRelation( + if (!empty($media = $request->getDataJson('media'))) { + $this->app->moduleManager->get('Media', 'Api')->addMediaToCollectionAndModel( $request->header->account, + $media, $vehicle->id, - $media->id, VehicleMapper::class, 'files', - '', - $request->getOrigin() - ); - - $ref = new Reference(); - $ref->name = $media->name; - $ref->source = new NullMedia($media->id); - $ref->createdBy = new NullAccount($request->header->account); - $ref->setVirtualPath($path); - - $this->createModel($request->header->account, $ref, ReferenceMapper::class, 'media_reference', $request->getOrigin()); - - if ($collection === null) { - /** @var \Modules\Media\Models\Collection $collection */ - $collection = MediaMapper::getParentCollection($path)->limit(1)->execute(); - - if ($collection->id === 0) { - $collection = $this->app->moduleManager->get('Media')->createRecursiveMediaCollection( - $path, - $request->header->account, - __DIR__ . '/../../../Modules/Media/Files' . $path - ); - } - } - - $this->createModelRelation( - $request->header->account, - $collection->id, - $ref->id, - CollectionMapper::class, - 'sources', - '', - $request->getOrigin() + $path ); } } @@ -706,85 +631,39 @@ final class ApiVehicleController extends Controller $vehicle = VehicleMapper::get()->where('id', (int) $request->getData('vehicle'))->execute(); $path = $this->createVehicleDir($vehicle); - $uploaded = []; - if (!empty($uploadedFiles = $request->files)) { + $uploaded = new NullCollection(); + if (!empty($request->files)) { $uploaded = $this->app->moduleManager->get('Media', 'Api')->uploadFiles( names: [], fileNames: [], - files: $uploadedFiles, + files: $request->files, account: $request->header->account, basePath: __DIR__ . '/../../../Modules/Media/Files' . $path, virtualPath: $path, pathSettings: PathSettings::FILE_PATH, hasAccountRelation: false, - readContent: $request->getDataBool('parse_content') ?? false + readContent: $request->getDataBool('parse_content') ?? false, + type: $request->getDataInt('type'), + rel: $vehicle->id, + mapper: VehicleMapper::class, + field: 'files' ); - - $collection = null; - foreach ($uploaded as $media) { - $this->createModelRelation( - $request->header->account, - $vehicle->id, - $media->id, - VehicleMapper::class, - 'files', - '', - $request->getOrigin() - ); - - if ($request->hasData('type')) { - $this->createModelRelation( - $request->header->account, - $media->id, - $request->getDataInt('type'), - MediaMapper::class, - 'types', - '', - $request->getOrigin() - ); - } - - if ($collection === null) { - /** @var \Modules\Media\Models\Collection $collection */ - $collection = MediaMapper::getParentCollection($path)->limit(1)->execute(); - - if ($collection->id === 0) { - $collection = $this->app->moduleManager->get('Media')->createRecursiveMediaCollection( - $path, - $request->header->account, - __DIR__ . '/../../../Modules/Media/Files' . $path, - ); - } - } - - $this->createModelRelation( - $request->header->account, - $collection->id, - $media->id, - CollectionMapper::class, - 'sources', - '', - $request->getOrigin() - ); - } } - $mediaFiles = $request->getDataJson('media'); - foreach ($mediaFiles as $media) { - $this->createModelRelation( + if (!empty($media = $request->getDataJson('media'))) { + $this->app->moduleManager->get('Media', 'Api')->addMediaToCollectionAndModel( $request->header->account, + $media, $vehicle->id, - (int) $media, VehicleMapper::class, 'files', - '', - $request->getOrigin() + $path ); } - $this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Media', 'Media added to vehicle.', [ - 'upload' => $uploaded, - 'media' => $mediaFiles, + $this->fillJsonResponse($request, $response, NotificationLevel::OK, '', $this->app->l11nManager->getText($response->header->l11n->language, '0', '0', 'SuccessfulAdd'), [ + 'upload' => $uploaded->sources, + 'media' => $media, ]); }