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

View File

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

View File

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

View File

@ -12,6 +12,8 @@
*/
declare(strict_types=1);
use Modules\Helper\Models\NullReport;
use Modules\Helper\Models\NullTemplate;
use phpOMS\Model\Html\FormElementGenerator;
use phpOMS\Uri\UriFactory;
@ -19,20 +21,22 @@ use phpOMS\Uri\UriFactory;
* @var \phpOMS\Views\View $this
*/
// @todo If no template is defined this is breaking;
/** @var \Modules\Media\Models\Collection[] $tcoll */
$tcoll = $this->data['tcoll'];
$tcoll = $this->data['tcoll'] ?? [];
/** @var \Modules\Media\Models\Collection[] $rcoll */
$rcoll = $this->data['rcoll'];
$rcoll = $this->data['rcoll'] ?? [];
/** @var string $cLang */
$cLang = $this->data['lang'];
$cLang = $this->data['lang'] ?? 'en';
/** @var \Modules\Helper\Models\Template $template */
$template = $this->data['template'];
$template = $this->data['template'] ?? new NullTemplate();
/** @var \Modules\Helper\Models\Report $report */
$report = $this->data['report'];
$report = $this->data['report'] ?? new NullReport();
/** @noinspection PhpIncludeInspection */
/** @var array<string, array<string, string>> $reportLanguage */
@ -161,17 +165,4 @@ echo $this->data['nav']->render(); ?>
<tr>
<td><?= $this->getHtml('Tags'); ?>
<td>
<div class="tag-list">
<?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>
<div