From 237d88ee7b226a6a1b7000f4666b90f50435797c Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Sun, 25 Dec 2022 00:06:17 +0100 Subject: [PATCH] test fixes and changes for release --- Controller/ApiController.php | 34 ++++++++++++++++++++------------ Controller/BackendController.php | 10 +++++----- tests/Bootstrap.php | 19 ++++++++++++++++++ 3 files changed, 45 insertions(+), 18 deletions(-) diff --git a/Controller/ApiController.php b/Controller/ApiController.php index f4ba3f4..8c1c59f 100755 --- a/Controller/ApiController.php +++ b/Controller/ApiController.php @@ -160,7 +160,7 @@ final class ApiController extends Controller . '"' , true); $response->header->set('Content-Type', MimeType::M_PDF, true); - $view->setTemplate('/' . \substr($view->getData('tcoll')['pdf']?->getPath(), 0, -8), 'pdf.php'); + $view->setTemplate('/' . \substr($view->getData('tcoll')['pdf']->getPath(), 0, -8), 'pdf.php'); break; case 'csv': if (!isset($view->getData('tcoll')['csv'])) { @@ -174,7 +174,7 @@ final class ApiController extends Controller . '"' , true); $response->header->set('Content-Type', MimeType::M_CONF, true); - $view->setTemplate('/' . \substr($view->getData('tcoll')['csv']?->getPath(), 0, -8), 'csv.php'); + $view->setTemplate('/' . \substr($view->getData('tcoll')['csv']->getPath(), 0, -8), 'csv.php'); break; case 'xls': case 'xlsx': @@ -189,7 +189,7 @@ final class ApiController extends Controller . '"' , true); $response->header->set('Content-Type', MimeType::M_XLSX, true); - $view->setTemplate('/' . \substr($view->getData('tcoll')['excel']?->getPath(), 0, -8), 'xls.php'); + $view->setTemplate('/' . \substr($view->getData('tcoll')['excel']->getPath(), 0, -8), 'xls.php'); break; case 'doc': case 'docx': @@ -204,7 +204,7 @@ final class ApiController extends Controller . '"' , true); $response->header->set('Content-Type', MimeType::M_XLSX, true); - $view->setTemplate('/' . \substr($view->getData('tcoll')['word']?->getPath(), 0, -8), 'doc.php'); + $view->setTemplate('/' . \substr($view->getData('tcoll')['word']->getPath(), 0, -8), 'doc.php'); break; case 'ppt': case 'pptx': @@ -219,7 +219,7 @@ final class ApiController extends Controller . '"' , true); $response->header->set('Content-Type', MimeType::M_XLSX, true); - $view->setTemplate('/' . \substr($view->getData('tcoll')['powerpoint']?->getPath(), 0, -8), 'ppt.php'); + $view->setTemplate('/' . \substr($view->getData('tcoll')['powerpoint']->getPath(), 0, -8), 'ppt.php'); break; case 'json': if (!isset($view->getData('tcoll')['json'])) { @@ -227,7 +227,7 @@ final class ApiController extends Controller } $response->header->set('Content-Type', MimeType::M_JSON, true); - $view->setTemplate('/' . \substr($view->getData('tcoll')['json']?->getPath(), 0, -9), 'json.php'); + $view->setTemplate('/' . \substr($view->getData('tcoll')['json']->getPath(), 0, -9), 'json.php'); break; default: if (!isset($view->getData('tcoll')['template'])) { @@ -235,24 +235,26 @@ final class ApiController extends Controller } $response->header->set('Content-Type', 'text/html; charset=utf-8'); - $view->setTemplate('/' . \substr($view->getData('tcoll')['template']?->getPath(), 0, -8)); + $view->setTemplate('/' . \substr($view->getData('tcoll')['template']->getPath(), 0, -8)); } } /** * Create media directory path * - * @param Template $template Template + * @param string $name Name * * @return string * * @since 1.0.0 */ - private function createHelperDir(Template $template) : string + private function createHelperDir(string $name) : string { + $dt = new \DateTime('now'); + return '/Modules/Helper/' - . $template->getId() . ' ' - . $template->name; + . $dt->format('Y-m-d') . '_' + . $name; } /** @@ -270,8 +272,10 @@ final class ApiController extends Controller */ private function createView(Template $template, RequestAbstract $request, ResponseAbstract $response) : View { - /** @var array $tcoll */ + /** @var array{lang?:\Modules\Media\Models\Media, cfg?:\Modules\Media\Models\Media, excel?:\Modules\Media\Models\Media, word?:\Modules\Media\Models\Media, powerpoint?:\Modules\Media\Models\Media, pdf?:\Modules\Media\Models\Media, csv?:\Modules\Media\Models\Media, json?:\Modules\Media\Models\Media, template?:\Modules\Media\Models\Media, css?:array, js?:array, db?:array, other?:array} $tcoll */ $tcoll = []; + + /** @var \Modules\Media\Models\Media[] $files */ $files = $template->source->getSources(); /** @var \Modules\Media\Models\Media $tMedia */ @@ -317,6 +321,10 @@ final class ApiController extends Controller $tcoll['css'][$tMedia->name] = $tMedia; break; case StringUtils::endsWith($lowerPath, '.js'): + if (!isset($tcoll['js'])) { + $tcoll['js'] = []; + } + $tcoll['js'][$tMedia->name] = $tMedia; break; case StringUtils::endsWith($lowerPath, '.sqlite'): @@ -404,7 +412,7 @@ final class ApiController extends Controller return; } - $path = '/Modules/Helper/' . $request->getData('name'); + $path = $this->createHelperDir($request->getData('name')); /** @var \Modules\Media\Models\Media[] $uploaded */ $uploaded = $this->app->moduleManager->get('Media')->uploadFiles( diff --git a/Controller/BackendController.php b/Controller/BackendController.php index 778b707..b162392 100755 --- a/Controller/BackendController.php +++ b/Controller/BackendController.php @@ -160,9 +160,13 @@ final class BackendController extends Controller $view->setTemplate('/Modules/Helper/Theme/Backend/helper-single'); + /** @var array $tcoll */ $tcoll = []; + + /** @var \Modules\Media\Models\Media[] $files */ $files = $template->source->getSources(); + /** @var \Modules\Media\Models\Media $tMedia */ foreach ($files as $tMedia) { $lowerPath = \strtolower($tMedia->getPath()); @@ -191,11 +195,7 @@ final class BackendController extends Controller } elseif (StringUtils::endsWith($lowerPath, '.js')) { $tcoll['js'] = $tMedia; } elseif (StringUtils::endsWith($lowerPath, '.sqlite') || StringUtils::endsWith($lowerPath, '.db')) { - if (!isset($tcoll['db'])) { - $tcoll['db'] = []; - } - - $tcoll['db'][] = $tMedia; + $tcoll['db'] = $tMedia; } } diff --git a/tests/Bootstrap.php b/tests/Bootstrap.php index d46fd31..b5d36a8 100755 --- a/tests/Bootstrap.php +++ b/tests/Bootstrap.php @@ -257,6 +257,25 @@ $CONFIG = [ 'root' => '/', 'https' => false, ], + 'app' => [ + 'path' => __DIR__, + 'default' => [ + 'app' => 'Backend', + 'id' => 'backend', + 'lang' => 'en', + 'theme' => 'Backend', + 'org' => 1, + ], + 'domains' => [ + '127.0.0.1' => [ + 'app' => 'Backend', + 'id' => 'backend', + 'lang' => 'en', + 'theme' => 'Backend', + 'org' => 1, + ], + ], + ], 'socket' => [ 'master' => [ 'host' => '127.0.0.1',