diff --git a/Admin/Install/Navigation.install.json b/Admin/Install/Navigation.install.json index 28a0eb4..8216778 100755 --- a/Admin/Install/Navigation.install.json +++ b/Admin/Install/Navigation.install.json @@ -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, diff --git a/Controller/ApiController.php b/Controller/ApiController.php index cf53863..c213664 100755 --- a/Controller/ApiController.php +++ b/Controller/ApiController.php @@ -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); diff --git a/Controller/BackendController.php b/Controller/BackendController.php index 8d1cdb7..58b0027 100755 --- a/Controller/BackendController.php +++ b/Controller/BackendController.php @@ -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 */ diff --git a/Theme/Backend/helper-view.tpl.php b/Theme/Backend/helper-view.tpl.php index e3e00d4..6338e5a 100644 --- a/Theme/Backend/helper-view.tpl.php +++ b/Theme/Backend/helper-view.tpl.php @@ -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> $reportLanguage */ @@ -161,17 +165,4 @@ echo $this->data['nav']->render(); ?> getHtml('Tags'); ?> -
- tags as $tag) : ?> - - icon) ? '' : '' . $this->printHtml($tag->icon) . ''; ?> - printHtml($tag->getL11n()); ?> - - -
- - - - - \ No newline at end of file +