From 9e647bb126f1c5b73584ee9a9c2b92d481f49c6d 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 --- resources/vue/components/WikiEditor.vue | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/resources/vue/components/WikiEditor.vue b/resources/vue/components/WikiEditor.vue index 52290cde2d9..069b2ff750d 100644 --- a/resources/vue/components/WikiEditor.vue +++ b/resources/vue/components/WikiEditor.vue @@ -23,7 +23,10 @@ </div> <div data-dialog-button=""> - <button class="button" :title="isChanged ? $gettext('Den aktuellen Stand speichern.') : $gettext('Der aktuelle Stand wurde bereits gespeichert.')"> + <button class="button" + :title="isChanged ? $gettext('Den aktuellen Stand speichern.') : $gettext('Der aktuelle Stand wurde bereits gespeichert.')" + @click="toggleSecurityHandler(false)" + > {{ $gettext('Speichern') }} </button> <a :href="cancelUrl" class="button"> @@ -189,6 +192,13 @@ export default { return data; }, + toggleSecurityHandler(state = true) { + if (state) { + window.addEventListener('beforeunload', this.securityHandler); + } else { + window.removeEventListener('beforeunload', this.securityHandler); + } + }, securityHandler(event) { event.preventDefault(); @@ -233,11 +243,7 @@ export default { }, watch: { isChanged(current) { - if (current) { - window.addEventListener('beforeunload', this.securityHandler); - } else { - window.removeEventListener('beforeunload', this.securityHandler); - } + this.toggleSecurityHandler(current); } } } -- GitLab