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 @@
{% block bBrowseMosaicOverlay %}
- {% include 'itop-portal-base/portal/templates/helpers/loader.html.twig' %}
+ {% include template('loader') %}
{% endblock %}
diff --git a/datamodels/2.x/itop-portal-base/portal/templates/bricks/browse/mode_tree.html.twig b/datamodels/2.x/itop-portal-base/portal/templates/bricks/browse/mode_tree.html.twig
index 566a4ef4f..4ef51700e 100644
--- a/datamodels/2.x/itop-portal-base/portal/templates/bricks/browse/mode_tree.html.twig
+++ b/datamodels/2.x/itop-portal-base/portal/templates/bricks/browse/mode_tree.html.twig
@@ -34,7 +34,7 @@
- {% include 'itop-portal-base/portal/templates/helpers/loader.html.twig' %}
+ {% include template('loader') %}
{% endblock %}
diff --git a/datamodels/2.x/itop-portal-base/portal/templates/bricks/manage/layout.html.twig b/datamodels/2.x/itop-portal-base/portal/templates/bricks/manage/layout.html.twig
index f8f9da614..b1ebbf34d 100644
--- a/datamodels/2.x/itop-portal-base/portal/templates/bricks/manage/layout.html.twig
+++ b/datamodels/2.x/itop-portal-base/portal/templates/bricks/manage/layout.html.twig
@@ -18,5 +18,5 @@
{% 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/object/mode_create.html.twig b/datamodels/2.x/itop-portal-base/portal/templates/bricks/object/mode_create.html.twig
index bdad93978..6952b2ae5 100644
--- a/datamodels/2.x/itop-portal-base/portal/templates/bricks/object/mode_create.html.twig
+++ b/datamodels/2.x/itop-portal-base/portal/templates/bricks/object/mode_create.html.twig
@@ -30,7 +30,7 @@
{# Misc. buttons #}
{% if form.buttons is defined and (form.buttons.actions is defined or form.buttons.links is defined) %}
- {% include 'itop-portal-base/portal/templates/bricks/object/plugins_buttons.html.twig' with {'aButtons': form.buttons} %}
+ {% include template('plugins_buttons', 'Combodo\\iTop\\Portal\\Controller\\ObjectController') with {'aButtons': form.buttons} %}
{% endif %}
{# Transition buttons #}
diff --git a/datamodels/2.x/itop-portal-base/portal/templates/bricks/object/mode_view.html.twig b/datamodels/2.x/itop-portal-base/portal/templates/bricks/object/mode_view.html.twig
index 2001e657f..5986725b2 100644
--- a/datamodels/2.x/itop-portal-base/portal/templates/bricks/object/mode_view.html.twig
+++ b/datamodels/2.x/itop-portal-base/portal/templates/bricks/object/mode_view.html.twig
@@ -6,7 +6,7 @@
{# Misc. buttons #}
{% if form.buttons is defined and (form.buttons.actions is defined or form.buttons.links is defined) %}
- {% include 'itop-portal-base/portal/templates/bricks/object/plugins_buttons.html.twig' with {'aButtons': form.buttons} %}
+ {% include template('plugins_buttons', 'Combodo\\iTop\\Portal\\Controller\\ObjectController') with {'aButtons': form.buttons} %}
{% endif %}
diff --git a/datamodels/2.x/itop-portal-base/portal/templates/bricks/user-profile/layout.html.twig b/datamodels/2.x/itop-portal-base/portal/templates/bricks/user-profile/layout.html.twig
index 0c1a84fdd..a4c01639d 100644
--- a/datamodels/2.x/itop-portal-base/portal/templates/bricks/user-profile/layout.html.twig
+++ b/datamodels/2.x/itop-portal-base/portal/templates/bricks/user-profile/layout.html.twig
@@ -55,7 +55,7 @@
{% set oContactForm = forms.contact %}
{% set oPreferencesForm = forms.preferences %}
{% set oPasswordForm = forms.password %}
- {% include 'itop-portal-base/portal/templates/bricks/user-profile/user_info.html.twig' %}
+ {% include template('user_info', 'Combodo\\iTop\\Portal\\Brick\\UserProfileBrick') %}
{% else %}
@@ -80,7 +80,7 @@
{% set oContactForm = forms.contact %}
{% set oPreferencesForm = forms.preferences %}
{% set oPasswordForm = forms.password %}
- {% include 'itop-portal-base/portal/templates/bricks/user-profile/user_info.ready.js.twig' %}
+ {% include template('user_info_ready_js', 'Combodo\\iTop\\Portal\\Brick\\UserProfileBrick') %}
{% endif %}
{% endblock %}
diff --git a/datamodels/2.x/itop-portal-base/portal/templates/helpers/session_messages/session_messages.html.twig b/datamodels/2.x/itop-portal-base/portal/templates/helpers/session_messages/session_messages.html.twig
index 191407e4a..4b15bdbaf 100644
--- a/datamodels/2.x/itop-portal-base/portal/templates/helpers/session_messages/session_messages.html.twig
+++ b/datamodels/2.x/itop-portal-base/portal/templates/helpers/session_messages/session_messages.html.twig
@@ -1,5 +1,5 @@
{% for aSessionMessage in app['session_message_helper'] %}
- {% include 'itop-portal-base/portal/templates/helpers/session_messages/session_message.html.twig' with {aSessionMessage: aSessionMessage} %}
+ {% include template('session_message') with {aSessionMessage: aSessionMessage} %}
{% endfor %}
\ No newline at end of file
diff --git a/datamodels/2.x/itop-portal-base/portal/templates/home/layout.html.twig b/datamodels/2.x/itop-portal-base/portal/templates/home/layout.html.twig
index 76fa19b32..de35a3816 100644
--- a/datamodels/2.x/itop-portal-base/portal/templates/home/layout.html.twig
+++ b/datamodels/2.x/itop-portal-base/portal/templates/home/layout.html.twig
@@ -11,7 +11,7 @@
- {% include 'itop-portal-base/portal/templates/helpers/session_messages/session_messages.html.twig' %}
+ {% include template('session_messages') %}
diff --git a/datamodels/2.x/itop-portal-base/portal/templates/layout.html.twig b/datamodels/2.x/itop-portal-base/portal/templates/layout.html.twig
index 12bae2f56..25f1c3741 100644
--- a/datamodels/2.x/itop-portal-base/portal/templates/layout.html.twig
+++ b/datamodels/2.x/itop-portal-base/portal/templates/layout.html.twig
@@ -335,7 +335,7 @@
- {% include 'itop-portal-base/portal/templates/helpers/session_messages/session_messages.html.twig' %}
+ {% include template('session_messages') %}
@@ -367,7 +367,7 @@
- {% include 'itop-portal-base/portal/templates/helpers/loader.html.twig' %}
+ {% include template('loader') %}
@@ -395,7 +395,7 @@
{% block pPageOverlay %}
- {% include 'itop-portal-base/portal/templates/helpers/loader.html.twig' %}
+ {% include template('loader') %}
{% endblock %}
diff --git a/datamodels/2.x/itop-portal-base/portal/templates/modal/mode_loader.html.twig b/datamodels/2.x/itop-portal-base/portal/templates/modal/mode_loader.html.twig
index 2061b19a5..1e7d95e67 100644
--- a/datamodels/2.x/itop-portal-base/portal/templates/modal/mode_loader.html.twig
+++ b/datamodels/2.x/itop-portal-base/portal/templates/modal/mode_loader.html.twig
@@ -3,7 +3,7 @@
{% extends 'itop-portal-base/portal/templates/modal/layout.html.twig' %}
{% block pModalContent %}
- {% include 'itop-portal-base/portal/templates/helpers/loader.html.twig' %}
+ {% include template('loader') %}
{% if redirection is defined and redirection.url is defined %}