From f1d448fd7894a0ffaafa60869eedffa9397b855f Mon Sep 17 00:00:00 2001 From: Benjamin Dalsass <95754414+bdalsass@users.noreply.github.com> Date: Mon, 13 Jan 2025 11:36:19 +0100 Subject: [PATCH] =?UTF-8?q?N=C2=B08031=20-=20Make=20all=20portal=20bricks?= =?UTF-8?q?=20use=20custom=20templates=20for=20all=20templates=20add=20mis?= =?UTF-8?q?sing=20templates?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../portal/src/Brick/UserProfileBrick.php | 2 ++ .../src/Controller/AbstractController.php | 4 +++ .../src/Controller/ObjectController.php | 8 +++++- .../TemplatesProviderService.php | 27 ++++++++++++++++--- .../templates/bricks/browse/layout.html.twig | 2 +- .../bricks/browse/mode_mosaic.html.twig | 2 +- .../bricks/browse/mode_tree.html.twig | 2 +- .../templates/bricks/manage/layout.html.twig | 2 +- .../bricks/object/mode_create.html.twig | 2 +- .../bricks/object/mode_view.html.twig | 2 +- .../bricks/user-profile/layout.html.twig | 4 +-- .../session_messages.html.twig | 2 +- .../portal/templates/home/layout.html.twig | 2 +- .../portal/templates/layout.html.twig | 6 ++--- .../templates/modal/mode_loader.html.twig | 2 +- 15 files changed, 51 insertions(+), 18 deletions(-) diff --git a/datamodels/2.x/itop-portal-base/portal/src/Brick/UserProfileBrick.php b/datamodels/2.x/itop-portal-base/portal/src/Brick/UserProfileBrick.php index f18ac65a4..0c97195e2 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/Brick/UserProfileBrick.php +++ b/datamodels/2.x/itop-portal-base/portal/src/Brick/UserProfileBrick.php @@ -63,6 +63,8 @@ class UserProfileBrick extends PortalBrick parent::RegisterTemplates($oTemplatesRegister); $oTemplatesRegister->RegisterTemplates(self::class, TemplateDefinitionDto::Create('page', static::TEMPLATES_BASE_PATH . 'user-profile/layout.html.twig'), + TemplateDefinitionDto::Create('user_info', static::TEMPLATES_BASE_PATH.'user-profile/user_info.html.twig'), + TemplateDefinitionDto::Create('user_info_ready_js', static::TEMPLATES_BASE_PATH.'user-profile/user_info.ready.js.twig'), ); } diff --git a/datamodels/2.x/itop-portal-base/portal/src/Controller/AbstractController.php b/datamodels/2.x/itop-portal-base/portal/src/Controller/AbstractController.php index d4ea7eb3f..6115b3c55 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/Controller/AbstractController.php +++ b/datamodels/2.x/itop-portal-base/portal/src/Controller/AbstractController.php @@ -45,6 +45,10 @@ abstract class AbstractController extends SymfonyAbstractController implements T $oTemplatesRegister->RegisterTemplates(self::class, TemplateDefinitionDto::Create('page', static::TEMPLATES_BASE_PATH . 'layout.html.twig'), TemplateDefinitionDto::Create('modal', static::TEMPLATES_BASE_PATH . 'modal/layout.html.twig'), + TemplateDefinitionDto::Create('loader', static::TEMPLATES_BASE_PATH.'helpers/loader.html.twig'), + TemplateDefinitionDto::Create('tagset_clic_handler_js', static::TEMPLATES_BASE_PATH.'helpers/tagset_clic_handler.js.twig'), + TemplateDefinitionDto::Create('session_message', static::TEMPLATES_BASE_PATH.'helpers/session_messages/session_message.html.twig'), + TemplateDefinitionDto::Create('session_messages', static::TEMPLATES_BASE_PATH.'helpers/session_messages/session_messages.html.twig'), ); } diff --git a/datamodels/2.x/itop-portal-base/portal/src/Controller/ObjectController.php b/datamodels/2.x/itop-portal-base/portal/src/Controller/ObjectController.php index 495dd0a11..94ac155d8 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/Controller/ObjectController.php +++ b/datamodels/2.x/itop-portal-base/portal/src/Controller/ObjectController.php @@ -84,7 +84,13 @@ class ObjectController extends BrickController TemplateDefinitionDto::Create('page', static::TEMPLATES_BASE_PATH. 'bricks/object/layout.html.twig'), TemplateDefinitionDto::Create('modal', static::TEMPLATES_BASE_PATH. 'bricks/object/modal.html.twig'), TemplateDefinitionDto::Create('mode_create', static::TEMPLATES_BASE_PATH.'bricks/object/mode_create.html.twig', true, 'create'), - TemplateDefinitionDto::Create('mode_loader', static::TEMPLATES_BASE_PATH.'modal/mode_loader.html.twig', true, 'loader'), + TemplateDefinitionDto::Create('mode_edit', static::TEMPLATES_BASE_PATH.'bricks/object/mode_edit.html.twig', true, 'edit'), + TemplateDefinitionDto::Create('mode_search_hierarchy', static::TEMPLATES_BASE_PATH.'bricks/object/mode_search_hierarchy.html.twig', true, 'search_hierarchy'), + TemplateDefinitionDto::Create('mode_search_regular', static::TEMPLATES_BASE_PATH.'bricks/object/mode_search_regular.html.twig', true, 'search_regular'), + TemplateDefinitionDto::Create('mode_view', static::TEMPLATES_BASE_PATH.'bricks/object/mode_view.html.twig', true, 'view'), + TemplateDefinitionDto::Create('mode_apply_stimulus', static::TEMPLATES_BASE_PATH.'bricks/object/mode_apply_stimulus.html.twig', true, 'apply_stimulus'), + TemplateDefinitionDto::Create('mode_loader', static::TEMPLATES_BASE_PATH.'modal/mode_loader.html.twig'), + TemplateDefinitionDto::Create('plugins_buttons', static::TEMPLATES_BASE_PATH.'bricks/object/plugins_buttons.html.twig'), ); } diff --git a/datamodels/2.x/itop-portal-base/portal/src/Service/TemplatesProvider/TemplatesProviderService.php b/datamodels/2.x/itop-portal-base/portal/src/Service/TemplatesProvider/TemplatesProviderService.php index 1907ac865..53424045a 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/Service/TemplatesProvider/TemplatesProviderService.php +++ b/datamodels/2.x/itop-portal-base/portal/src/Service/TemplatesProvider/TemplatesProviderService.php @@ -180,6 +180,7 @@ class TemplatesProviderService * * @return string|null * @throws \ReflectionException + * @throws \Exception */ public function GetTemplatePath(string $sProviderClass, string $sTemplateId, bool $bIsInitial = false): ?string { @@ -193,8 +194,17 @@ class TemplatesProviderService // search for the template definition $oTemplateDefinition = $this->oTemplateRegister->GetTemplateDefinition($sProviderClass, $sTemplateId); - // return the template path - return $oTemplateDefinition?->GetPath($bIsInitial); + if ($oTemplateDefinition !== null) + { + + // return the template path + return $oTemplateDefinition->GetPath($bIsInitial); + } + else + { + throw new Exception("Template definition not found for provider class `$sProviderClass` and template id `$sTemplateId` (provider is known by the service)"); + } + } else { @@ -203,7 +213,18 @@ class TemplatesProviderService // the provider class is unknown by service // the class register its templates with legacy constants - return $this->GetLegacyTemplatePath($sProviderClass, $sTemplateId); + $sTemplatePath = $this->GetLegacyTemplatePath($sProviderClass, $sTemplateId); + + if ($sTemplatePath !== null) + { + + // return the template path + return $sTemplatePath; + } + else + { + throw new Exception("Template definition not found for provider class `$sProviderClass` and template id `$sTemplateId` (provider is unknown by the service)"); + } } } diff --git a/datamodels/2.x/itop-portal-base/portal/templates/bricks/browse/layout.html.twig b/datamodels/2.x/itop-portal-base/portal/templates/bricks/browse/layout.html.twig index d84b38fea..bdf1e63b1 100644 --- a/datamodels/2.x/itop-portal-base/portal/templates/bricks/browse/layout.html.twig +++ b/datamodels/2.x/itop-portal-base/portal/templates/bricks/browse/layout.html.twig @@ -4,7 +4,7 @@ {% block pPageReadyScripts %} {{ parent() }} - {% include 'itop-portal-base/portal/templates/helpers/tagset_clic_handler.js.twig' %} + {% include template('tagset_clic_handler_js') %} {% endblock %} diff --git a/datamodels/2.x/itop-portal-base/portal/templates/bricks/browse/mode_mosaic.html.twig b/datamodels/2.x/itop-portal-base/portal/templates/bricks/browse/mode_mosaic.html.twig index dc367005b..fba854bbd 100644 --- a/datamodels/2.x/itop-portal-base/portal/templates/bricks/browse/mode_mosaic.html.twig +++ b/datamodels/2.x/itop-portal-base/portal/templates/bricks/browse/mode_mosaic.html.twig @@ -19,7 +19,7 @@