From f4917a35f0370be4061057523fe737672e80e585 Mon Sep 17 00:00:00 2001 From: Jan-Hendrik Willms <tleilax+studip@gmail.com> Date: Thu, 29 Aug 2024 07:20:00 +0000 Subject: [PATCH] disable security handler when regularly saving a wiki page, fixes #4543 Closes #4543 Merge request studip/studip!3338 --- app/views/course/wiki/edit.php | 5 ++++- resources/assets/javascripts/lib/wiki.js | 13 ++++++++----- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/app/views/course/wiki/edit.php b/app/views/course/wiki/edit.php index df126a48a2f..583049638af 100644 --- a/app/views/course/wiki/edit.php +++ b/app/views/course/wiki/edit.php @@ -33,7 +33,10 @@ </div> <div data-dialog-button=""> - <button class="button" :title="isChanged ? '<?= _('Den aktuellen Stand speichern.') ?>' : '<?= _('Der aktuelle Stand wurde bereits gespeichert.') ?>'"> + <button class="button" + :title="isChanged ? '<?= _('Den aktuellen Stand speichern.') ?>' : '<?= _('Der aktuelle Stand wurde bereits gespeichert.') ?>'" + @click="toggleSecurityHandler(false)" + > <?= _('Speichern') ?> </button> <?= \Studip\LinkButton::create(_('Verlassen'), $controller->leave_editing($page))?> diff --git a/resources/assets/javascripts/lib/wiki.js b/resources/assets/javascripts/lib/wiki.js index 4f68fc945c2..58ff027e80d 100644 --- a/resources/assets/javascripts/lib/wiki.js +++ b/resources/assets/javascripts/lib/wiki.js @@ -77,6 +77,13 @@ const Wiki = { this.editor.editing.view.focus(); }); }, + toggleSecurityHandler(state = true) { + if (state) { + window.addEventListener('beforeunload', this.securityHandler); + } else { + window.removeEventListener('beforeunload', this.securityHandler); + } + }, securityHandler(event) { event.preventDefault(); event.returnValue = true; @@ -105,11 +112,7 @@ const Wiki = { }, watch: { isChanged(current) { - if (current) { - window.addEventListener('beforeunload', this.securityHandler); - } else { - window.removeEventListener('beforeunload', this.securityHandler); - } + this.toggleSecurityHandler(current); } }, components: { WikiEditorOnlineUsers } -- GitLab