From 8fecf8b25b5daa0bf1526a004e1d4c318efdab9f Mon Sep 17 00:00:00 2001 From: Christian Beeznest Date: Sat, 20 Sep 2025 14:44:36 -0500 Subject: [PATCH] Internal: Localize SweetAlert confirm buttons via data-* - refs BT#22937 --- assets/js/legacy/app.js | 27 ++++++++++--------- public/main/admin/system_announcements.php | 21 ++++++++++----- .../main/exercise/question_list_admin.inc.php | 4 ++- .../template/default/glossary/list.html.twig | 9 +++++-- public/main/user/user.php | 22 ++++++++++++--- 5 files changed, 58 insertions(+), 25 deletions(-) diff --git a/assets/js/legacy/app.js b/assets/js/legacy/app.js index efcefec7792..cb385c75927 100644 --- a/assets/js/legacy/app.js +++ b/assets/js/legacy/app.js @@ -132,24 +132,27 @@ $(function () { } // MODAL DELETE CONFIRM - $(".delete-swal").click(function (e) { + $(document).on("click", ".delete-swal", function (e) { e.preventDefault() - var url = $(this).attr("href") - var title = $(this).data("title") || $(this).attr("title") - var confirmText = $(this).data("confirm-text") || 'Yes' - var cancelText = $(this).data("cancel-text") || 'Cancel' + + const $a = $(this) + const url = $a.attr("href") + const title = $a.data("title") || $a.attr("title") || "" + + const confirmText = $a.data("confirm-text") || "Yes" + const cancelText = $a.data("cancel-text") || "No" Swal.fire({ - title: title, - text: "", + title, icon: "warning", showCancelButton: true, + confirmButtonText: confirmText, cancelButtonText: cancelText, confirmButtonColor: "#3085d6", cancelButtonColor: "#d33", - confirmButtonText: confirmText, + reverseButtons: true, }).then((result) => { - if (result.value) { + if (result.isConfirmed) { window.location.href = url } }) @@ -456,10 +459,10 @@ function setCheckbox(value, table_id) { } function action_click(element, table_id) { - var d = $("#" + table_id); - var confirmMessage = $(element).attr("data-confirm") || "ConfirmYourChoice"; + var d = $("#" + table_id) + var confirmMessage = $(element).attr("data-confirm") || "ConfirmYourChoice" if (!confirm(confirmMessage)) { - return false; + return false } else { var action = $(element).attr("data-action") $("#" + table_id + ' input[name="action"]').attr("value", action) diff --git a/public/main/admin/system_announcements.php b/public/main/admin/system_announcements.php index 717ac35b429..b066ff0b447 100644 --- a/public/main/admin/system_announcements.php +++ b/public/main/admin/system_announcements.php @@ -441,13 +441,22 @@ function showCareer() { $row[] = implode(', ', $announcement->getRoles()); $row[] = $announcement->getLang(); - $row[] = "getId()."\">". - Display::getMdiIcon(ActionIcon::EDIT, 'ch-tool-icon', null, ICON_SIZE_SMALL, get_lang('Edit'))." - getId()."\" - title=".addslashes(api_htmlentities(get_lang('Please confirm your choice')))." class='delete-swal' >". + $confirmMsg = addslashes(api_htmlentities(get_lang('Please confirm your choice'))); + $yesText = addslashes(api_htmlentities(get_lang('Yes'))); + $noText = addslashes(api_htmlentities(get_lang('No'))); + $row[] = + ''. + Display::getMdiIcon(ActionIcon::EDIT, 'ch-tool-icon', null, ICON_SIZE_SMALL, get_lang('Edit')). + ' + '. Display::getMdiIcon(ActionIcon::DELETE, 'ch-tool-icon', null, ICON_SIZE_SMALL, get_lang('Delete')). - ""; + ''; $announcement_data[] = $row; } $table = new SortableTableFromArray($announcement_data); diff --git a/public/main/exercise/question_list_admin.inc.php b/public/main/exercise/question_list_admin.inc.php index ca5f9db4179..96600d53be8 100644 --- a/public/main/exercise/question_list_admin.inc.php +++ b/public/main/exercise/question_list_admin.inc.php @@ -217,7 +217,7 @@ ['class' => 'btn btn--warning btn-sm'] ); $delete_link = null; - if (true == $objExercise->edit_exercise_in_lp) { + if ($objExercise->edit_exercise_in_lp) { $delete_link = Display::url( Display::getMdiIcon(ActionIcon::DELETE, 'ch-tool-icon-button', 'margin-bottom: 5px;', ICON_SIZE_TINY, get_lang('Remove from test')), api_get_self().'?'.api_get_cidreq().'&' @@ -230,6 +230,8 @@ 'id' => "delete_$id", 'class' => 'delete-swal btn btn--danger btn-sm', 'data-title' => get_lang('Are you sure you want to delete'), + 'data-confirm-text' => get_lang('Yes'), + 'data-cancel-text' => get_lang('Cancel'), 'title' => get_lang('Delete'), ] ); diff --git a/public/main/template/default/glossary/list.html.twig b/public/main/template/default/glossary/list.html.twig index b402394a0e3..1d4b340a610 100644 --- a/public/main/template/default/glossary/list.html.twig +++ b/public/main/template/default/glossary/list.html.twig @@ -10,8 +10,13 @@ {{ 'ActionIcon::EDIT' | mdi_icon }} + href="{{ item.delete }}" + class="btn btn-light btn-sm delete-swal" + title="{{ 'Delete'|trans }}" + data-title="{{ 'Confirm if you want to delete'|trans }}" + data-confirm-text="{{ 'Yes'|trans }}" + data-cancel-text="{{ 'No'|trans }}" + > {{ 'ActionIcon::DELETE' | mdi_icon }} diff --git a/public/main/user/user.php b/public/main/user/user.php index 2b0c8f21d5f..079e89aea72 100644 --- a/public/main/user/user.php +++ b/public/main/user/user.php @@ -1088,15 +1088,29 @@ function modify_filter($user_id, $row, $data) // Unsubscribe if ($canEditUsers && ($user_id != $current_user_id || api_is_platform_admin())) { $result .= Display::url( - Display::getMdiIcon(ActionIcon::EXIT, 'ch-tool-icon text-xl delete-swal', null, ICON_SIZE_MEDIUM, get_lang('Unsubscribe')), - api_get_self().'?'.api_get_cidreq().'&type='.$type.'&unregister=yes&user_id='.$user_id + Display::getMdiIcon(ActionIcon::EXIT, 'ch-tool-icon text-xl', null, ICON_SIZE_MEDIUM, get_lang('Unsubscribe')), + api_get_self().'?'.api_get_cidreq().'&type='.$type.'&unregister=yes&user_id='.$user_id, + [ + 'class' => 'delete-swal', + 'title' => get_lang('Unsubscribe'), + 'data-title' => get_lang('Are you sure you want to unsubscribe this user?'), + 'data-confirm-text' => get_lang('Yes'), + 'data-cancel-text' => get_lang('No'), + ] ); } } else { if (1 == $course_info['unsubscribe'] && $user_id == $current_user_id) { $result .= Display::url( - Display::getMdiIcon(ActionIcon::EXIT, 'ch-tool-icon text-xl delete-swal', null, ICON_SIZE_MEDIUM, get_lang('Unsubscribe')), - api_get_self().'?'.api_get_cidreq().'&type='.$type.'&unregister=yes&user_id='.$user_id + Display::getMdiIcon(ActionIcon::EXIT, 'ch-tool-icon text-xl', null, ICON_SIZE_MEDIUM, get_lang('Unsubscribe')), + api_get_self().'?'.api_get_cidreq().'&type='.$type.'&unregister=yes&user_id='.$user_id, + [ + 'class' => 'delete-swal', + 'title' => get_lang('Unsubscribe'), + 'data-title' => get_lang('Are you sure you want to unsubscribe?'), + 'data-confirm-text' => get_lang('Yes'), + 'data-cancel-text' => get_lang('No'), + ] ); } }