From 4883e1f14d4efc6b95ca29346f1e79a5b357b1c7 Mon Sep 17 00:00:00 2001
From: Jan-Hendrik Willms <tleilax+studip@gmail.com>
Date: Mon, 9 Dec 2024 11:58:51 +0100
Subject: [PATCH] fix vue errors, re #3747

---
 resources/assets/javascripts/bootstrap/oer.js             | 2 +-
 resources/assets/javascripts/lib/blubber.js               | 8 ++------
 resources/vue/components/EditableList.vue                 | 6 +-----
 .../components/form_inputs/CalendarPermissionsTable.vue   | 2 +-
 resources/vue/components/questionnaires/InputArray.vue    | 2 +-
 .../vue/components/questionnaires/QuestionnaireEditor.vue | 3 ++-
 6 files changed, 8 insertions(+), 15 deletions(-)

diff --git a/resources/assets/javascripts/bootstrap/oer.js b/resources/assets/javascripts/bootstrap/oer.js
index 51081a30fbc..b47c55d4641 100644
--- a/resources/assets/javascripts/bootstrap/oer.js
+++ b/resources/assets/javascripts/bootstrap/oer.js
@@ -113,7 +113,7 @@ STUDIP.ready(() => {
                         }
                     },
                     removeTag: function (i) {
-                        this.$delete(this.tags, i);
+                        this.tags.splice(i, 1);
                         if ((this.minimumTags > this.tags.length) && (this.minimumTags > 5)) {
                             this.minimumTags--;
                         }
diff --git a/resources/assets/javascripts/lib/blubber.js b/resources/assets/javascripts/lib/blubber.js
index df4f3d72266..91240997570 100644
--- a/resources/assets/javascripts/lib/blubber.js
+++ b/resources/assets/javascripts/lib/blubber.js
@@ -76,13 +76,9 @@ const Blubber = {
                                     name: name,
                                 });
                             },
-                            removeUser: function (event) {
+                            removeUser(event) {
                                 let user_id = $(event.target).closest('li').find('input').val();
-                                for (let i in this.users) {
-                                    if (this.users[i].user_id === user_id) {
-                                        this.$delete(this.users, i);
-                                    }
-                                }
+                                this.users = this.users.filter(user => user.user_id !== user_id);
                             },
                             clearUsers: function () {
                                 this.users = [];
diff --git a/resources/vue/components/EditableList.vue b/resources/vue/components/EditableList.vue
index 057ffe3b729..bc63b6203b1 100644
--- a/resources/vue/components/EditableList.vue
+++ b/resources/vue/components/EditableList.vue
@@ -135,11 +135,7 @@ export default {
             }
         },
         deleteItem (item) {
-            for (let i in this.allItems) {
-                if (this.allItems[i].value === item.value) {
-                    this.$delete(this.allItems, i);
-                }
-            }
+            this.allItems = this.allItems.filter(i => i.value !== item.value);
             this.changed();
         },
         isSelected (id) {
diff --git a/resources/vue/components/form_inputs/CalendarPermissionsTable.vue b/resources/vue/components/form_inputs/CalendarPermissionsTable.vue
index 59130580833..7886fa6d5ca 100644
--- a/resources/vue/components/form_inputs/CalendarPermissionsTable.vue
+++ b/resources/vue/components/form_inputs/CalendarPermissionsTable.vue
@@ -81,7 +81,7 @@ export default {
         },
         removeContact(user_id) {
             if (this.users[user_id] !== undefined) {
-                this.$delete(this.users, user_id);
+                delete this.users[user_id];
             }
         }
     }
diff --git a/resources/vue/components/questionnaires/InputArray.vue b/resources/vue/components/questionnaires/InputArray.vue
index 8d514c574c1..7cd6844f704 100644
--- a/resources/vue/components/questionnaires/InputArray.vue
+++ b/resources/vue/components/questionnaires/InputArray.vue
@@ -122,7 +122,7 @@ export default {
         deleteOption(index) {
             const question = this.options[index] ? this.$gettext('Wirklich löschen?') : true;
             STUDIP.Dialog.confirm(question).done(() => {
-                this.$delete(this.options, index);
+                this.options[index].splice(index, 1);
             });
         },
         onPaste(ev, position) {
diff --git a/resources/vue/components/questionnaires/QuestionnaireEditor.vue b/resources/vue/components/questionnaires/QuestionnaireEditor.vue
index 7512bce5d07..6ea8d642e60 100644
--- a/resources/vue/components/questionnaires/QuestionnaireEditor.vue
+++ b/resources/vue/components/questionnaires/QuestionnaireEditor.vue
@@ -287,7 +287,8 @@ export default {
         },
         deleteQuestion(question_id) {
             STUDIP.Dialog.confirm(this.$gettext('Wirklich löschen?')).done(() => {
-                this.$delete(this.data.questions, this.getIndexForQuestion(question_id));
+                const index = this.getIndexForQuestion(question_id);
+                this.data.questions.splice(index, 1);
                 this.switchTab('add_question');
             })
         },
-- 
GitLab