This commit is contained in:
Dennis Eichhorn 2024-04-12 00:52:06 +00:00
parent 184ca689da
commit 78f4add84a
4 changed files with 34 additions and 75 deletions

View File

@ -5,7 +5,7 @@
"type": 2, "type": 2,
"subtype": 1, "subtype": 1,
"name": "Helper", "name": "Helper",
"uri": "{/base}/helper/list?{?}", "uri": "{/base}/helper/list",
"target": "self", "target": "self",
"icon": null, "icon": null,
"order": 60, "order": 60,
@ -19,7 +19,7 @@
"type": 3, "type": 3,
"subtype": 1, "subtype": 1,
"name": "List", "name": "List",
"uri": "{/base}/helper/list?{?}", "uri": "{/base}/helper/list",
"target": "self", "target": "self",
"icon": null, "icon": null,
"order": 1, "order": 1,
@ -34,7 +34,7 @@
"type": 3, "type": 3,
"subtype": 5, "subtype": 5,
"name": "CreateReport", "name": "CreateReport",
"uri": "{/base}/helper/report/create?{?}", "uri": "{/base}/helper/report/create",
"target": "self", "target": "self",
"icon": null, "icon": null,
"order": 5, "order": 5,
@ -49,7 +49,7 @@
"type": 3, "type": 3,
"subtype": 5, "subtype": 5,
"name": "CreateTemplate", "name": "CreateTemplate",
"uri": "{/base}/helper/template/create?{?}", "uri": "{/base}/helper/template/create",
"target": "self", "target": "self",
"icon": null, "icon": null,
"order": 10, "order": 10,

View File

@ -24,7 +24,6 @@ use Modules\Helper\Models\Template;
use Modules\Helper\Models\TemplateDataType; use Modules\Helper\Models\TemplateDataType;
use Modules\Helper\Models\TemplateMapper; use Modules\Helper\Models\TemplateMapper;
use Modules\Media\Models\Collection; use Modules\Media\Models\Collection;
use Modules\Media\Models\CollectionMapper;
use Modules\Media\Models\NullCollection; use Modules\Media\Models\NullCollection;
use Modules\Media\Models\NullMedia; use Modules\Media\Models\NullMedia;
use Modules\Media\Models\PathSettings; use Modules\Media\Models\PathSettings;
@ -394,9 +393,8 @@ final class ApiController extends Controller
*/ */
public function apiTemplateCreate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void public function apiTemplateCreate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void
{ {
$dbFiles = $request->getDataJson('media-list'); $dbFiles = $request->getDataJson('media-list');
$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;
@ -417,18 +415,18 @@ final class ApiController extends Controller
$path = $this->createHelperDir($request->getDataString('name') ?? ''); $path = $this->createHelperDir($request->getDataString('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(
$request->getDataList('names'), names: $request->getDataList('names'),
$request->getDataList('filenames'), fileNames: $request->getDataList('filenames'),
$uploadedFiles, files: $request->files,
$request->header->account, account: $request->header->account,
__DIR__ . '/../../../Modules/Media/Files' . $path, basePath: __DIR__ . '/../../../Modules/Media/Files' . $path,
$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;
} }
@ -440,27 +438,7 @@ final class ApiController extends Controller
$files[] = new NullMedia($db); $files[] = new NullMedia($db);
} }
/** @var Collection $collection */ $template = $this->createTemplateFromRequest($request, $uploaded->id);
$collection = $this->app->moduleManager->get('Media', 'Api')->createMediaCollectionFromMedia(
$request->getDataString('name') ?? '',
$request->getDataString('description') ?? '',
$files,
$request->header->account
);
$collection->setPath('/Modules/Media/Files/Modules/Helper/' . ($request->getDataString('name') ?? ''));
$collection->setVirtualPath('/Modules/Helper');
$this->createModel($request->header->account, $collection, CollectionMapper::class, 'collection', $request->getOrigin());
if ($collection->id < 1) {
$response->header->status = RequestStatusCode::R_403;
$this->createInvalidCreateResponse($request, $response, $collection);
return;
}
$template = $this->createTemplateFromRequest($request, $collection->id);
$this->app->moduleManager->get('Admin')->createAccountModelPermission( $this->app->moduleManager->get('Admin')->createAccountModelPermission(
new AccountPermission( new AccountPermission(
@ -565,26 +543,16 @@ final class ApiController extends Controller
return; return;
} }
$files = $this->app->moduleManager->get('Media', 'Api')->uploadFiles( $path = '/Modules/Helper/' . ($request->getDataString('name') ?? '');
$request->getDataList('names'), $collection = $this->app->moduleManager->get('Media', 'Api')->uploadFiles(
$request->getDataList('filenames'), names: $request->getDataList('names'),
$request->files, fileNames: $request->getDataList('filenames'),
$request->header->account, files: $request->files,
__DIR__ . '/../../../Modules/Media/Files' account: $request->header->account,
basePath: __DIR__ . '/../../../Modules/Media/Files' . $path,
virtualPath: $path
); );
$collection = $this->app->moduleManager->get('Media')->createMediaCollectionFromMedia(
$request->getDataString('name') ?? '',
$request->getDataString('description') ?? '',
$files,
$request->header->account
);
$collection->setPath('/Modules/Media/Files/Modules/Helper/' . ($request->getDataString('name') ?? ''));
$collection->setVirtualPath('/Modules/Helper');
$this->createModel($request->header->account, $collection, CollectionMapper::class, 'collection', $request->getOrigin());
if ($collection->id < 1) { 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, $collection);

View File

@ -203,7 +203,7 @@ final class BackendController extends Controller
$report = null; $report = null;
if (!$template->isStandalone) { if (!$template->isStandalone) {
if (!isset($tcoll['template'])) { if (!isset($tcoll['template'])) {
throw new \Exception('No template file detected.'); return $view;
} }
/** @var \Modules\Helper\Models\Report $report */ /** @var \Modules\Helper\Models\Report $report */

View File

@ -12,6 +12,8 @@
*/ */
declare(strict_types=1); declare(strict_types=1);
use Modules\Helper\Models\NullReport;
use Modules\Helper\Models\NullTemplate;
use phpOMS\Model\Html\FormElementGenerator; use phpOMS\Model\Html\FormElementGenerator;
use phpOMS\Uri\UriFactory; use phpOMS\Uri\UriFactory;
@ -19,20 +21,22 @@ use phpOMS\Uri\UriFactory;
* @var \phpOMS\Views\View $this * @var \phpOMS\Views\View $this
*/ */
// @todo If no template is defined this is breaking;
/** @var \Modules\Media\Models\Collection[] $tcoll */ /** @var \Modules\Media\Models\Collection[] $tcoll */
$tcoll = $this->data['tcoll']; $tcoll = $this->data['tcoll'] ?? [];
/** @var \Modules\Media\Models\Collection[] $rcoll */ /** @var \Modules\Media\Models\Collection[] $rcoll */
$rcoll = $this->data['rcoll']; $rcoll = $this->data['rcoll'] ?? [];
/** @var string $cLang */ /** @var string $cLang */
$cLang = $this->data['lang']; $cLang = $this->data['lang'] ?? 'en';
/** @var \Modules\Helper\Models\Template $template */ /** @var \Modules\Helper\Models\Template $template */
$template = $this->data['template']; $template = $this->data['template'] ?? new NullTemplate();
/** @var \Modules\Helper\Models\Report $report */ /** @var \Modules\Helper\Models\Report $report */
$report = $this->data['report']; $report = $this->data['report'] ?? new NullReport();
/** @noinspection PhpIncludeInspection */ /** @noinspection PhpIncludeInspection */
/** @var array<string, array<string, string>> $reportLanguage */ /** @var array<string, array<string, string>> $reportLanguage */
@ -161,17 +165,4 @@ echo $this->data['nav']->render(); ?>
<tr> <tr>
<td><?= $this->getHtml('Tags'); ?> <td><?= $this->getHtml('Tags'); ?>
<td> <td>
<div class="tag-list"> <div
<?php
foreach ($template->tags as $tag) : ?>
<span class="tag" style="background: <?= $this->printHtml($tag->color); ?>">
<?= empty($tag->icon) ? '' : '<i class="g-icon">' . $this->printHtml($tag->icon) . '</i>'; ?>
<?= $this->printHtml($tag->getL11n()); ?>
</span>
<?php endforeach; ?>
</div>
</table>
</div>
</div>
</div>
</div>