This commit is contained in:
Dennis Eichhorn 2024-04-12 00:52:09 +00:00
parent 64c67b8c28
commit 362b0f3e0e
2 changed files with 12 additions and 26 deletions

View File

@ -5,7 +5,7 @@
"type": 2, "type": 2,
"subtype": 1, "subtype": 1,
"name": "Workflows", "name": "Workflows",
"uri": "{/base}/workflow/instance/list?{?}", "uri": "{/base}/workflow/instance/list",
"target": "self", "target": "self",
"icon": null, "icon": null,
"order": 90, "order": 90,
@ -19,7 +19,7 @@
"type": 3, "type": 3,
"subtype": 1, "subtype": 1,
"name": "Dashboard", "name": "Dashboard",
"uri": "{/base}/workflow/instance/list?{?}", "uri": "{/base}/workflow/instance/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": "Templates", "name": "Templates",
"uri": "{/base}/workflow/template/list?{?}", "uri": "{/base}/workflow/template/list",
"target": "self", "target": "self",
"icon": null, "icon": null,
"order": 5, "order": 5,
@ -49,7 +49,7 @@
"type": 3, "type": 3,
"subtype": 1, "subtype": 1,
"name": "Create", "name": "Create",
"uri": "{/base}/workflow/template/create?{?}", "uri": "{/base}/workflow/template/create",
"target": "self", "target": "self",
"icon": null, "icon": null,
"order": 10, "order": 10,

View File

@ -347,8 +347,7 @@ final class ApiController extends Controller
*/ */
public function apiWorkflowTemplateCreate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void public function apiWorkflowTemplateCreate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void
{ {
$uploadedFiles = $request->files; $files = [];
$files = [];
if (!empty($val = $this->validateTemplateCreate($request))) { if (!empty($val = $this->validateTemplateCreate($request))) {
$response->header->status = RequestStatusCode::R_400; $response->header->status = RequestStatusCode::R_400;
@ -367,23 +366,23 @@ final class ApiController extends Controller
} }
$collectionId = 0; $collectionId = 0;
$uploaded = []; $uploaded = new NullCollection();
if (!empty($request->files)) { if (!empty($request->files)) {
$path = '/Modules/Workflow/' . $request->getData('name'); $path = '/Modules/Workflow/' . $request->getData('name');
/** @var \Modules\Media\Models\Media[] $uploaded */ /** @var \Modules\Media\Models\Collection $uploaded */
$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' . $path, basePath: __DIR__ . '/../../../Modules/Media/Files' . $path,
virtualPath: $path, virtualPath: $path,
pathSettings: PathSettings::FILE_PATH pathSettings: PathSettings::FILE_PATH
); );
foreach ($uploaded as $upload) { foreach ($uploaded->sources as $upload) {
if ($upload->id === 0) { if ($upload->id === 0) {
continue; continue;
} }
@ -391,27 +390,14 @@ final class ApiController extends Controller
$files[] = $upload; $files[] = $upload;
} }
/** @var \Modules\Media\Models\Collection $collection */ if ($uploaded->id < 1) {
$collection = $this->app->moduleManager->get('Media')->createMediaCollectionFromMedia(
$request->getDataString('name') ?? '',
$request->getDataString('description') ?? '',
$files,
$request->header->account
);
$collection->setPath('/Modules/Media/Files/Modules/Workflow/' . ($request->getDataString('name') ?? ''));
$collection->setVirtualPath('/Modules/Workflow');
$this->createModel($request->header->account, $collection, CollectionMapper::class, 'collection', $request->getOrigin());
if ($collection->id < 1) {
$response->header->status = RequestStatusCode::R_403; $response->header->status = RequestStatusCode::R_403;
$this->createInvalidCreateResponse($request, $response, $collection); $this->createInvalidCreateResponse($request, $response, $uploaded);
return; return;
} }
$collectionId = $collection->id; $collectionId = $uploaded->id;
} }
$template = $this->createTemplateFromRequest($request, $collectionId); $template = $this->createTemplateFromRequest($request, $collectionId);