This commit is contained in:
Dennis Eichhorn 2024-04-12 00:52:06 +00:00
parent 50a615c84d
commit 629279b262
3 changed files with 18 additions and 37 deletions

View File

@ -5,7 +5,7 @@
"type": 2, "type": 2,
"subtype": 1, "subtype": 1,
"name": "Clients", "name": "Clients",
"uri": "{/base}/sales/client/list?{?}", "uri": "{/base}/sales/client/list",
"target": "self", "target": "self",
"icon": null, "icon": null,
"order": 1, "order": 1,
@ -19,7 +19,7 @@
"type": 3, "type": 3,
"subtype": 1, "subtype": 1,
"name": "List", "name": "List",
"uri": "{/base}/sales/client/list?{?}", "uri": "{/base}/sales/client/list",
"target": "self", "target": "self",
"icon": null, "icon": null,
"order": 1, "order": 1,
@ -34,7 +34,7 @@
"type": 3, "type": 3,
"subtype": 1, "subtype": 1,
"name": "Create", "name": "Create",
"uri": "{/base}/sales/client/create?{?}", "uri": "{/base}/sales/client/create",
"target": "self", "target": "self",
"icon": null, "icon": null,
"order": 1, "order": 1,
@ -51,7 +51,7 @@
"type": 2, "type": 2,
"subtype": 1, "subtype": 1,
"name": "Attributes", "name": "Attributes",
"uri": "{/base}/sales/client/attribute/type/list?{?}", "uri": "{/base}/sales/client/attribute/type/list",
"target": "self", "target": "self",
"icon": null, "icon": null,
"order": 5, "order": 5,
@ -65,7 +65,7 @@
"type": 3, "type": 3,
"subtype": 1, "subtype": 1,
"name": "Types", "name": "Types",
"uri": "{/base}/sales/client/attribute/type/list?{?}", "uri": "{/base}/sales/client/attribute/type/list",
"target": "self", "target": "self",
"icon": null, "icon": null,
"order": 15, "order": 15,
@ -80,7 +80,7 @@
"type": 3, "type": 3,
"subtype": 1, "subtype": 1,
"name": "Create", "name": "Create",
"uri": "{/base}/sales/client/attribute/type/create?{?}", "uri": "{/base}/sales/client/attribute/type/create",
"target": "self", "target": "self",
"icon": null, "icon": null,
"order": 15, "order": 15,

View File

@ -22,6 +22,7 @@ return [
[ [
'dest' => '\Modules\ClientManagement\Controller\SearchController:searchGeneral', 'dest' => '\Modules\ClientManagement\Controller\SearchController:searchGeneral',
'verb' => RouteVerb::ANY, 'verb' => RouteVerb::ANY,
'active' => true,
'permission' => [ 'permission' => [
'module' => SearchController::NAME, 'module' => SearchController::NAME,
'type' => PermissionType::READ, 'type' => PermissionType::READ,

View File

@ -29,7 +29,6 @@ use Modules\ClientManagement\Models\PermissionCategory;
use Modules\ClientManagement\Models\SettingsEnum; use Modules\ClientManagement\Models\SettingsEnum;
use Modules\Media\Models\Collection; use Modules\Media\Models\Collection;
use Modules\Media\Models\CollectionMapper; use Modules\Media\Models\CollectionMapper;
use Modules\Media\Models\MediaMapper;
use Modules\Media\Models\PathSettings; use Modules\Media\Models\PathSettings;
use Modules\Organization\Models\UnitMapper; use Modules\Organization\Models\UnitMapper;
use phpOMS\Account\PermissionType; use phpOMS\Account\PermissionType;
@ -295,7 +294,7 @@ final class ApiController extends Controller
private function createMediaDirForClient(int $id, int $createdBy) : Collection private function createMediaDirForClient(int $id, int $createdBy) : Collection
{ {
$collection = new Collection(); $collection = new Collection();
$collection->name = $id; $collection->name = (string) $id;
$collection->setVirtualPath('/Modules/ClientManagement/Clients'); $collection->setVirtualPath('/Modules/ClientManagement/Clients');
$collection->setPath('/Modules/Media/Files/Modules/ClientManagement/Clients/' . $id); $collection->setPath('/Modules/Media/Files/Modules/ClientManagement/Clients/' . $id);
$collection->createdBy = new NullAccount($createdBy); $collection->createdBy = new NullAccount($createdBy);
@ -615,10 +614,8 @@ final class ApiController extends Controller
*/ */
public function apiFileCreate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void public function apiFileCreate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void
{ {
$uploadedFiles = $request->files; if (empty($request->files)) {
$this->fillJsonResponse($request, $response, NotificationLevel::ERROR, 'Client', 'Invalid file', $request->files);
if (empty($uploadedFiles)) {
$this->fillJsonResponse($request, $response, NotificationLevel::ERROR, 'Client', 'Invalid file', $uploadedFiles);
$response->header->status = RequestStatusCode::R_400; $response->header->status = RequestStatusCode::R_400;
return; return;
@ -627,41 +624,24 @@ final class ApiController extends Controller
$uploaded = $this->app->moduleManager->get('Media', 'Api')->uploadFiles( $uploaded = $this->app->moduleManager->get('Media', 'Api')->uploadFiles(
names: $request->getDataList('names'), names: $request->getDataList('names'),
fileNames: $request->getDataList('filenames'), fileNames: $request->getDataList('filenames'),
files: $uploadedFiles, files: $request->files,
account: $request->header->account, account: $request->header->account,
basePath: __DIR__ . '/../../../Modules/Media/Files/Modules/ClientManagement/Clients/' . ($request->getData('client') ?? '0'), basePath: __DIR__ . '/../../../Modules/Media/Files/Modules/ClientManagement/Clients/' . ($request->getData('client') ?? '0'),
virtualPath: '/Modules/ClientManagement/Clients/' . ($request->getData('client') ?? '0'), virtualPath: '/Modules/ClientManagement/Clients/' . ($request->getData('client') ?? '0'),
pathSettings: PathSettings::FILE_PATH pathSettings: PathSettings::FILE_PATH,
type: $request->getDataInt('type'),
rel: (int) $request->getData('client'),
mapper: ClientMapper::class,
field: 'files'
); );
if ($request->hasData('type')) { if (empty($uploaded->sources)) {
foreach ($uploaded as $file) {
$this->createModelRelation(
$request->header->account,
$file->id,
$request->getDataInt('type'),
MediaMapper::class,
'types',
'',
$request->getOrigin()
);
}
}
if (empty($uploaded)) {
$this->createInvalidAddResponse($request, $response, []); $this->createInvalidAddResponse($request, $response, []);
return; return;
} }
$this->createModelRelation( $this->createStandardCreateResponse($request, $response, $uploaded->sources);
$request->header->account,
(int) $request->getData('client'),
\reset($uploaded)->id,
ClientMapper::class, 'files', '', $request->getOrigin()
);
$this->createStandardCreateResponse($request, $response, $uploaded);
} }
/** /**