From 2e196eb90fc1f4cc451762848d72d17425e4b952 Mon Sep 17 00:00:00 2001 From: Angel Fernando Quiroz Campos Date: Fri, 10 May 2024 19:34:39 -0500 Subject: [PATCH] LP: Restoring injection of css/js libs in lp content - refs BT#21508 --- assets/css/legacy/frameReadyLoader.scss | 38 ++++++++++++++++++++ assets/js/legacy/frameReadyLoader.js | 6 ++++ assets/vue/composables/mediaElementLoader.js | 4 +-- public/main/inc/lib/display.lib.php | 14 ++++++++ webpack.config.js | 1 + 5 files changed, 60 insertions(+), 3 deletions(-) create mode 100644 assets/css/legacy/frameReadyLoader.scss create mode 100644 assets/js/legacy/frameReadyLoader.js diff --git a/assets/css/legacy/frameReadyLoader.scss b/assets/css/legacy/frameReadyLoader.scss new file mode 100644 index 0000000000..f5a7820004 --- /dev/null +++ b/assets/css/legacy/frameReadyLoader.scss @@ -0,0 +1,38 @@ +@tailwind base; + +@layer base { + :root { + --color-primary-base: 46 117 163; + --color-primary-gradient: 36 77 103; + --color-primary-button-text: 46 117 163; + --color-primary-button-alternative-text: 255 255 255; + + --color-secondary-base: 243 126 47; + --color-secondary-gradient: 224 100 16; + --color-secondary-button-text: 255 255 255; + + --color-tertiary-base: 51 51 51; + --color-tertiary-gradient: 0 0 0; + --color-tertiary-button-text: 255 255 255; + + --color-success-base: 119 170 12; + --color-success-gradient: 83 127 0; + --color-success-button-text: 255 255 255; + + --color-info-base: 13 123 253; + --color-info-gradient: 0 84 211; + --color-info-button-text: 255 255 255; + + --color-warning-base: 245 206 1; + --color-warning-gradient: 186 152 0; + --color-warning-button-text: 0 0 0; + + --color-danger-base: 223 59 59; + --color-danger-gradient: 180 0 21; + --color-danger-button-text: 255 255 255; + + --color-form-base: 46 117 163; + } +} + +@import "../scss/libs/mediaelementjs/styles"; diff --git a/assets/js/legacy/frameReadyLoader.js b/assets/js/legacy/frameReadyLoader.js new file mode 100644 index 0000000000..dfdc770090 --- /dev/null +++ b/assets/js/legacy/frameReadyLoader.js @@ -0,0 +1,6 @@ +import { useMediaElementLoader } from "../../vue/composables/mediaElementLoader" +import "../../css/legacy/frameReadyLoader.scss" + +const { domLoader: mejsLoader } = useMediaElementLoader() + +mejsLoader() diff --git a/assets/vue/composables/mediaElementLoader.js b/assets/vue/composables/mediaElementLoader.js index fba8ab33d7..663d49bc37 100644 --- a/assets/vue/composables/mediaElementLoader.js +++ b/assets/vue/composables/mediaElementLoader.js @@ -56,9 +56,7 @@ function loader() { } function domLoader() { - document.addEventListener("DOMContentLoaded", function () { - loader() - }) + addedNodesCallback(document) } export function useMediaElementLoader() { diff --git a/public/main/inc/lib/display.lib.php b/public/main/inc/lib/display.lib.php index 769213493c..0201a31a10 100644 --- a/public/main/inc/lib/display.lib.php +++ b/public/main/inc/lib/display.lib.php @@ -2667,9 +2667,23 @@ class Display string $itemType = '', string $jsConditionalFunction = 'function () { return false; }' ): string { + $colorThemeRepo = Container::$container->get(ColorThemeRepository::class); + $router = Container::getRouter(); + + $colorTheme = $colorThemeRepo->getActiveOne(); + $colorThemeItem = ''; + + if ($colorTheme) { + $colorThemeItem = '{ type: "stylesheet", src: "'.$router->generate('chamilo_color_theme').'" },'; + } + return '$.frameReady(function() {}, "'.$frameName.'", [ + { type: "script", src: "/build/runtime.js" }, + { type: "script", src: "/build/legacy_framereadyloader.js" }, + { type: "stylesheet", src: "/build/legacy_framereadyloader.css" }, + '.$colorThemeItem.' ], '.$jsConditionalFunction .');'; diff --git a/webpack.config.js b/webpack.config.js index f71854b12c..3ba39fe3dd 100755 --- a/webpack.config.js +++ b/webpack.config.js @@ -19,6 +19,7 @@ Encore.setOutputPath("public/build/") .addEntry("legacy_free-jqgrid", "./assets/js/legacy/free-jqgrid.js") .addEntry("legacy_lp", "./assets/js/legacy/lp.js") .addEntry("legacy_document", "./assets/js/legacy/document.js") + .addEntry("legacy_framereadyloader", "./assets/js/legacy/frameReadyLoader.js") .addEntry("vue", "./assets/vue/main.js") .addEntry("vue_installer", "./assets/vue/main_installer.js")