diff --git a/js/dataTables.settings.js b/js/dataTables.settings.js
index 52754a972..d2e7f5253 100644
--- a/js/dataTables.settings.js
+++ b/js/dataTables.settings.js
@@ -89,11 +89,11 @@ $(function () {
aOptions = $.extend(aOptions, JSON.parse(data));
if (aOptions.js_files) {
$.each(aOptions.js_files, function (i, item) {
- if ($.inArray(item, aListJsFiles) === -1)
+ if ($.inArray(item, aLoadedJsFilesRegister) === -1)
{
sFileUrl = CombodoGlobalToolbox.AddParameterToUrl(item, aOptions.js_files_param, aOptions.js_files_value);
$.ajax({url:sFileUrl, dataType: 'script', cache: true });
- aListJsFiles.push(item);
+ aLoadedJsFilesRegister.push(item);
}
});
}
diff --git a/templates/pages/backoffice/ajaxpage/layout.html.twig b/templates/pages/backoffice/ajaxpage/layout.html.twig
index ecd001a2a..74dbc7ba1 100644
--- a/templates/pages/backoffice/ajaxpage/layout.html.twig
+++ b/templates/pages/backoffice/ajaxpage/layout.html.twig
@@ -35,55 +35,99 @@
{% set sId = oLayout.GetId() | sanitize(constant('utils::ENUM_SANITIZATION_FILTER_VARIABLE_NAME')) %}
{% block iboPageJsFiles %}
{% endblock %}
{% else %}
diff --git a/templates/pages/backoffice/webpage/layout.html.twig b/templates/pages/backoffice/webpage/layout.html.twig
index 457075bf1..2dd8483b7 100644
--- a/templates/pages/backoffice/webpage/layout.html.twig
+++ b/templates/pages/backoffice/webpage/layout.html.twig
@@ -64,14 +64,32 @@
{{ render_block(oBlock, {aPage: aPage}) }}
{% endfor %}
{% endblock %}
-{% if aPage.aJsFiles is not empty %}
-
-{% endif %}
+ aLoadedJsFilesRegister.set("{{ sJsFile|raw }}", new Promise(function(resolve) {
+ aLoadedJsFilesResolveCallbacks.set("{{ sJsFile|raw }}", resolve);
+ // Resolve promise right away as these files are loaded immediately before any inline JS is executed
+ aLoadedJsFilesResolveCallbacks.get("{{ sJsFile|raw }}")();
+ }));
+ {% endfor %}
+
+
{% block iboPageJsFiles %}
{% for sJsFile in aPage.aJsFiles %}