From fa94ef6289d100c67e89fa585634b908b6e15615 Mon Sep 17 00:00:00 2001
From: Jan-Hendrik Willms <tleilax+studip@gmail.com>
Date: Fri, 4 Mar 2022 14:39:47 +0000
Subject: [PATCH] fix deleting of tour steps, fixes #760

---
 app/controllers/tour.php                 |  4 ++--
 resources/assets/javascripts/lib/tour.js | 22 +++++++++++++++++-----
 2 files changed, 19 insertions(+), 7 deletions(-)

diff --git a/app/controllers/tour.php b/app/controllers/tour.php
index 80930decf5e..bae6f558042 100644
--- a/app/controllers/tour.php
+++ b/app/controllers/tour.php
@@ -402,8 +402,8 @@ class TourController extends AuthenticatedController
             $this->response->add_header('X-Action', 'question');
             return (string) QuestionBox::create(
                 sprintf(_('Wollen Sie Schritt %s wirklich löschen?'), $step_nr),
-                $this->url_for('tour/admin_overview',  ['confirm_delete_tour_step' => $step_nr, 'tour_id' => $tour_id, 'step_nr' => $step_nr]),
-                $this->url_for('tour/admin_overview')
+                $this->url_for("tour/admin_details/{$tour_id}",  ['confirm_delete_tour_step' => $step_nr]),
+                $this->url_for("tour/admin_details/{$tour_id}")
             );
         }
         return '';
diff --git a/resources/assets/javascripts/lib/tour.js b/resources/assets/javascripts/lib/tour.js
index 44b170e9998..b93be078395 100644
--- a/resources/assets/javascripts/lib/tour.js
+++ b/resources/assets/javascripts/lib/tour.js
@@ -447,14 +447,28 @@ const Tour = {
                             jQuery('.tour_focus_box').removeClass('tour_focus_box');
                         }
                         jQuery('body').prepend(html);
+                        jQuery('.modaloverlay').find('.ui-dialog-titlebar-close, .cancel.button').click(event => {
+                            event.preventDefault();
+                            event.stopPropagation();
+
+                            if (Tour.started) {
+                                jQuery('#tour_controls').show();
+                                jQuery('#tour_tip').show();
+                                jQuery('#tour_tip_interactive').show();
+                                jQuery('#tour_selector_overlay').show();
+                            }
+
+                            $('.modaloverlay').remove();
+                        });
                         jQuery('.modaloverlay form').on('click', function(event) {
                             jQuery(this).data('clicked', jQuery(event.target));
                         });
                         jQuery('.modaloverlay form').on('submit', function(event) {
                             event.preventDefault();
+
                             Tour.deleteStep(
-                                jQuery('.modaloverlay form input[name=tour_id]').val(),
-                                jQuery('.modaloverlay form input[name=step_nr]').val(),
+                                tour_id,
+                                step_nr,
                                 jQuery(this)
                                     .data('clicked')
                                     .attr('name')
@@ -463,9 +477,7 @@ const Tour = {
                         });
                     } else if (xhr.getResponseHeader('X-Action') === 'complete') {
                         if (Tour.started) {
-                            Tour.showControlButtons();
-                            Tour.setTooltip(Tour.options.data[Tour.step]);
-                            Tour.started = false;
+                            Tour.destroy();
                             if (step_nr > 1 && step_nr - Tour.options.route_step_nr >= Tour.steps - 1) {
                                 Tour.init(tour_id, step_nr - 1);
                             } else {
-- 
GitLab