diff --git a/front/change_supplier.form.php b/front/change_supplier.form.php index 376aa9b02df..4ee529db332 100644 --- a/front/change_supplier.form.php +++ b/front/change_supplier.form.php @@ -50,9 +50,7 @@ $link->check($_POST["id"], UPDATE); $link->update($_POST); - echo ""; + echo Html::scriptBlock("window.parent.location.reload();"); } elseif (isset($_POST['delete'])) { $link->check($_POST['id'], DELETE); $link->delete($_POST); diff --git a/front/change_user.form.php b/front/change_user.form.php index 8f3f3d765a7..0d43097b9b6 100644 --- a/front/change_user.form.php +++ b/front/change_user.form.php @@ -53,9 +53,7 @@ $link->check($_POST["id"], UPDATE); $link->update($_POST); - echo ""; + echo Html::scriptBlock("window.parent.location.reload();"); } elseif (isset($_POST['delete'])) { $link->check($_POST['id'], DELETE); $link->delete($_POST); diff --git a/front/problem_supplier.form.php b/front/problem_supplier.form.php index ba403474483..a284eafad07 100644 --- a/front/problem_supplier.form.php +++ b/front/problem_supplier.form.php @@ -50,9 +50,7 @@ $link->check($_POST["id"], UPDATE); $link->update($_POST); - echo ""; + echo Html::scriptBlock("window.parent.location.reload();"); } elseif (isset($_POST['delete'])) { $link->check($_POST['id'], DELETE); $link->delete($_POST); diff --git a/front/problem_user.form.php b/front/problem_user.form.php index 7041d5188fe..76684463a7f 100644 --- a/front/problem_user.form.php +++ b/front/problem_user.form.php @@ -53,9 +53,7 @@ $link->check($_POST["id"], UPDATE); if ($link->update($_POST)) { - echo ""; + echo Html::scriptBlock("window.parent.location.reload();"); } else { Html::back(); } diff --git a/front/supplier_ticket.form.php b/front/supplier_ticket.form.php index 8149f0f299d..030350009a0 100644 --- a/front/supplier_ticket.form.php +++ b/front/supplier_ticket.form.php @@ -50,9 +50,7 @@ $link->check($_POST["id"], UPDATE); $link->update($_POST); - echo ""; + echo Html::scriptBlock("window.parent.location.reload();"); } elseif (isset($_POST['delete'])) { $link->check($_POST['id'], DELETE); $link->delete($_POST); diff --git a/front/ticket_user.form.php b/front/ticket_user.form.php index 8ca5680728d..0dfc9c08279 100644 --- a/front/ticket_user.form.php +++ b/front/ticket_user.form.php @@ -49,9 +49,7 @@ $link->check($_POST["id"], UPDATE); if ($link->update($_POST)) { - echo ""; + echo Html::scriptBlock("window.parent.location.reload();"); } else { Html::back(); } diff --git a/install/install.php b/install/install.php index a51bf092251..3fa53f4e7ca 100644 --- a/install/install.php +++ b/install/install.php @@ -35,6 +35,7 @@ require_once(__DIR__ . '/../front/_check_webserver_config.php'); +use Glpi\Application\View\ScriptType; use Glpi\Application\View\TemplateRenderer; use Glpi\Locale\LanguageRegistry; use Glpi\System\Requirement\DbConfiguration; @@ -356,12 +357,10 @@ public function __construct(mysqli $dbh) echo ''; echo ''; - echo << - import { init_database } from '/js/modules/GlpiInstall.js'; - init_database(); - - HTML; + echo Html::scriptBlock(<<" . __s('Impossible to write the database setup file') . "

"; $prev_form($host, $user, $password); diff --git a/install/update.php b/install/update.php index 56c5c527975..16e99e70f5c 100644 --- a/install/update.php +++ b/install/update.php @@ -35,6 +35,7 @@ require_once(__DIR__ . '/../front/_check_webserver_config.php'); +use Glpi\Application\View\ScriptType; use Glpi\Application\View\TemplateRenderer; use Glpi\Toolbox\VersionParser; @@ -176,12 +177,10 @@ function showSecurityKeyCheckForm(): void echo ''; echo ''; - echo << - import { update_database } from '/js/modules/GlpiInstall.js'; - update_database(); - - HTML; + echo Html::scriptBlock(<<"; diff --git a/src/CommonITILValidation.php b/src/CommonITILValidation.php index 8744c02b3dd..deee07d0598 100644 --- a/src/CommonITILValidation.php +++ b/src/CommonITILValidation.php @@ -1233,7 +1233,7 @@ class="border-0 bg-transparent p-0" } } - $script = ""; + $html = ""; if ($canedit) { $edit_title = __s('Edit'); $item_id = (int) $itil->fields['id']; @@ -1247,27 +1247,28 @@ class="border-0 bg-transparent p-0" $rand_id = htmlescape($item_id . $row_id . $rand); - $script = << { + viewEditValidation{$rand_id}(); + }); + JAVASCRIPT); + $html = << - + $script HTML; } $values[] = [ - 'edit' => $script, + 'edit' => $html, 'status' => $status, 'type_name' => $type_name, 'target_name' => $target_name, diff --git a/src/Glpi/Api/HL/Controller/CoreController.php b/src/Glpi/Api/HL/Controller/CoreController.php index b8d92651bff..56b2a30c7d8 100644 --- a/src/Glpi/Api/HL/Controller/CoreController.php +++ b/src/Glpi/Api/HL/Controller/CoreController.php @@ -360,36 +360,38 @@ public function showDocumentation(Request $request): Response }); $doc_json_paths = json_encode($doc_json_paths, JSON_THROW_ON_ERROR); + $script = Html::scriptBlock(<< { + const method_order = ['get', 'post', 'put', 'patch', 'delete']; + if (a.get('path') === b.get('path')) { + return method_order.indexOf(a.get('method')) - method_order.indexOf(b.get('method')); + } + return a.get('path').localeCompare(b.get('path')); + }, + tagsSorter: (a, b) => a.localeCompare(b), + }); + JAVASCRIPT); + $swagger_content .= <<
- + $script HTML; @@ -735,11 +737,14 @@ public function token(Request $request): Response #[RouteVersion(introduced: '2.0')] public function swaggerOAuthRedirect(Request $request): Response { - $js_path = \htmlescape(Html::getPrefixedUrl('/lib/swagger-ui-dist/oauth2-redirect.js')); + $script = Html::script( + url: '/lib/swagger-ui-dist/oauth2-redirect.js', + minify: false + ); $content = << - +$script diff --git a/src/Glpi/Application/View/Extension/FrontEndAssetsExtension.php b/src/Glpi/Application/View/Extension/FrontEndAssetsExtension.php index 3261d75b02f..35b3bc8f745 100644 --- a/src/Glpi/Application/View/Extension/FrontEndAssetsExtension.php +++ b/src/Glpi/Application/View/Extension/FrontEndAssetsExtension.php @@ -38,6 +38,7 @@ use DBmysql; use Entity; use Glpi\Application\ImportMapGenerator; +use Glpi\Application\View\ScriptType; use Glpi\Config\ConfigContainer; use Glpi\Locale\LanguageRegistry; use Glpi\Toolbox\FrontEnd; @@ -354,9 +355,12 @@ public function importmap(): string { $import_map = ImportMapGenerator::getInstance()->generate(); - return ''; + return Html::scriptBlock( + json_encode( + $import_map, + JSON_PRETTY_PRINT + ), + ScriptType::ImportMap, + ); } } diff --git a/src/Glpi/Marketplace/View.php b/src/Glpi/Marketplace/View.php index 35ecd7de470..2f07b928203 100644 --- a/src/Glpi/Marketplace/View.php +++ b/src/Glpi/Marketplace/View.php @@ -462,6 +462,9 @@ public static function displayList( $plugin = new Plugin(); $plugin_message = $plugin->getPluginsUpdatableAlert(); + $script = Html::scriptBlock(<< {$tags_list} @@ -485,9 +488,7 @@ public static function displayList( - + $script HTML; echo $marketplace; } else { diff --git a/src/Reservation.php b/src/Reservation.php index 8749a71151b..c9345af076f 100644 --- a/src/Reservation.php +++ b/src/Reservation.php @@ -33,6 +33,7 @@ * --------------------------------------------------------------------- */ +use Glpi\Application\View\ScriptType; use Glpi\Application\View\TemplateRenderer; use Glpi\Event; use Glpi\RichText\RichText; @@ -592,16 +593,14 @@ public static function showCalendar(int $ID = 0) $can_reserve_js = $can_reserve ? "true" : "false"; $now = jsescape(Session::getCurrentTime()); $default_date = jsescape($default_date); - echo << - window.Vue.createApp(window.Vue.components['Reservations/ReservationScheduler'].component, { - id: $ID, - can_reserve: $can_reserve_js, - now: '$now', - default_date: '$default_date', - }).mount('#reservations_planning_$rand'); - -HTML; + echo Html::scriptBlock(<< 0 ) ? "true" : "false"; $now = jsescape(Session::getCurrentTime()); - echo << - window.Vue.createApp(window.Vue.components['Reservations/ReservationScheduler'].component, { - id: $ID, - can_reserve: $can_reserve_js, - now: '$now', - default_date: '$default_date', - current_view: 'listFull', - }).mount('#reservations_planning_$rand'); - -HTML; + echo Html::scriptBlock(<<"; } diff --git a/src/RuleCollection.php b/src/RuleCollection.php index bee78b59394..6b14a3ce22f 100644 --- a/src/RuleCollection.php +++ b/src/RuleCollection.php @@ -628,30 +628,28 @@ public function showListRules($target, $options = []) ], ]); $collection_classname = jsescape(static::class); - echo << - $(() => { - sortable('#rulelist tbody', { - handle: '.grip-rule', - placeholder: ' ' - })[0].addEventListener('sortupdate', (e) => { - const sort_detail = e.detail; - const new_index = sort_detail.destination.index; - const old_index = sort_detail.origin.index; - - $.post(CFG_GLPI['root_doc'] + '/ajax/rule.php', { - 'action': 'move_rule', - 'rule_id': sort_detail.item.dataset.id, - 'collection_classname': "{$collection_classname}", - 'sort_action': (old_index > new_index) ? 'before' : 'after', - 'ref_id': sort_detail.destination.itemsBeforeUpdate[new_index].dataset.id, - }); - - displayAjaxMessageAfterRedirect(); + echo Html::scriptBlock(<< { + sortable('#rulelist tbody', { + handle: '.grip-rule', + placeholder: ' ' + })[0].addEventListener('sortupdate', (e) => { + const sort_detail = e.detail; + const new_index = sort_detail.destination.index; + const old_index = sort_detail.origin.index; + + $.post(CFG_GLPI['root_doc'] + '/ajax/rule.php', { + 'action': 'move_rule', + 'rule_id': sort_detail.item.dataset.id, + 'collection_classname': "{$collection_classname}", + 'sort_action': (old_index > new_index) ? 'before' : 'after', + 'ref_id': sort_detail.destination.itemsBeforeUpdate[new_index].dataset.id, }); + + displayAjaxMessageAfterRedirect(); }); - -HTML; + }); + JAVASCRIPT); $url = $CFG_GLPI["root_doc"]; $url .= static::getRulesTestURL();