Browse Source

Add JS confirmation popup on course description delete icon - refs #2583

Yannick Warnier 6 years ago
parent
commit
ba0e253e24

+ 15 - 1
main/course_description/course_description_controller.php

@@ -52,13 +52,27 @@ class CourseDescriptionController
             $data['descriptions'] = [$data['descriptions']];
         }
 
-        foreach ($data['descriptions'] as $description) {
+        // Prepare confirmation code for item deletion
+        global $htmlHeadXtra;
+        $htmlHeadXtra[] = "<script>
+        function confirmation(name) {
+            if (confirm(\" ".trim(get_lang('AreYouSureToDeleteJS'))." \"+name+\"?\")) {
+                return true;
+            } else {
+                return false;
+            }
+        }
+        </script>";
+
+        foreach ($data['descriptions'] as $id => $description) {
             if (!empty($description['content'])
                 && strpos($description['content'], '<iframe') !== false
                 && $browser['name'] == 'Chrome'
             ) {
                 header("X-XSS-Protection: 0");
             }
+            // Add an escape version for the JS code of delete confirmation
+            $data['descriptions'][$id]['title_js'] = addslashes($description['title']);
         }
         $actions = null;
         $actionLeft = null;

+ 5 - 6
main/template/default/course_description/index.tpl

@@ -9,16 +9,15 @@
                 {% if is_allowed_to_edit %}
                     <div class="pull-right">
                         {% if session_id == description.session_id %}
-                            <a href="{{ _p.web_self }}?action=delete&amp;id={{ description.id }}&amp;{{ _p.web_cid_query }}"
-                               onclick="delete_entry('description_{{ description.id }}', this); return false;"
-                               title="{{ 'Delete'|get_lang }}">
-                                <img src="{{ 'delete.png'|icon(22) }}"/>
-                            </a>
-
                             <a href="{{ _p.web_self }}?action=edit&amp;id={{ description.id }}&amp;{{ _p.web_cid_query }}"
                                title="{{ 'Edit'|get_lang }}">
                                 <img src="{{ 'edit.png'|icon(22) }}"/>
                             </a>
+                            <a href="{{ _p.web_self }}?action=delete&amp;id={{ description.id }}&amp;{{ _p.web_cid_query }}"
+                               onclick="javascript:return confirmation('{{ description.title_js }}');"
+                               title="{{ 'Delete'|get_lang }}">
+                                <img src="{{ 'delete.png'|icon(22) }}"/>
+                            </a>
                         {% else %}
                             <img title="{{ 'EditionNotAvailableFromSession'|get_lang }}"
                                  alt="{{ 'EditionNotAvailableFromSession'|get_lang }}"