From ec8b971dfd4100ea2ff7db7ee89e694c3d303bfb Mon Sep 17 00:00:00 2001
From: Ron Lucke <lucke@elan-ev.de>
Date: Tue, 2 Apr 2024 08:25:19 +0000
Subject: [PATCH] =?UTF-8?q?fix=20#3829=20f=C3=BCr=205.4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Merge request studip/studip!2779
---
 resources/vue/components/StudipDialog.vue            | 10 +++++++++-
 .../courseware/CoursewareBiographyCareerBlock.vue    |  4 ++--
 .../components/courseware/CoursewareFolderBlock.vue  |  6 +++---
 .../courseware/CoursewareImageMapBlock.vue           |  4 ++--
 .../courseware/CoursewareKeyPointBlock.vue           |  6 +++---
 .../courseware/CoursewareTasksDialogDistribute.vue   | 12 ++++++------
 .../vue/components/courseware/CoursewareUnitItem.vue |  6 +++---
 7 files changed, 28 insertions(+), 20 deletions(-)

diff --git a/resources/vue/components/StudipDialog.vue b/resources/vue/components/StudipDialog.vue
index f14dd371e57..0edd3c53b28 100644
--- a/resources/vue/components/StudipDialog.vue
+++ b/resources/vue/components/StudipDialog.vue
@@ -1,6 +1,6 @@
 <template>
     <MountingPortal mountTo="body" append>
-        <focus-trap v-model="trap" :initial-focus="() => defaultFocus ? $refs.buttonB : null">
+        <focus-trap v-model="trap">
             <div class="studip-dialog" @keydown.esc="closeDialog">
                 <transition name="dialog-fade">
                     <div class="studip-dialog-backdrop">
@@ -262,5 +262,13 @@ export default {
             return typeof value !== "number" ? 0 : value;
         }
     },
+    mounted() {
+        if (this.defaultFocus) {
+            this.$nextTick()
+                .then(() => {
+                    this.$refs.buttonB.focus();
+                });
+        }
+    }
 };
 </script>
diff --git a/resources/vue/components/courseware/CoursewareBiographyCareerBlock.vue b/resources/vue/components/courseware/CoursewareBiographyCareerBlock.vue
index 6fd855067bf..9566c4ae2e9 100644
--- a/resources/vue/components/courseware/CoursewareBiographyCareerBlock.vue
+++ b/resources/vue/components/courseware/CoursewareBiographyCareerBlock.vue
@@ -17,8 +17,8 @@
                         class="cw-timeline-item"
                     >
                         <div class="cw-timeline-item-icon cw-timeline-item-icon-color-studip-blue">
-                            <studip-icon v-if="item.type === 'school'" shape="doctoral-cap" role="clickable" size="32"/>
-                            <studip-icon v-if="item.type === 'experience'" shape="tools" role="clickable" size="32"/>
+                            <studip-icon v-if="item.type === 'school'" shape="doctoral-cap" :size="32"/>
+                            <studip-icon v-if="item.type === 'experience'" shape="tools" :size="32"/>
                         </div>
                         <div
                             class="cw-timeline-item-content cw-timeline-item-content-color-studip-blue"
diff --git a/resources/vue/components/courseware/CoursewareFolderBlock.vue b/resources/vue/components/courseware/CoursewareFolderBlock.vue
index aa13147563b..1e020f4371a 100644
--- a/resources/vue/components/courseware/CoursewareFolderBlock.vue
+++ b/resources/vue/components/courseware/CoursewareFolderBlock.vue
@@ -103,13 +103,13 @@
                                         />
                                         <label @click="selectedTerm = term.id" :key="term.id + 'label'">
                                             <div class="icon">
-                                                <studip-icon :shape="term.attributes.icon" size="32"/>
+                                                <studip-icon :shape="term.attributes.icon" :size="32"/>
                                             </div>
                                             <div class="text">
                                                 {{ term.attributes.name }}
                                             </div>
-                                            <studip-icon shape="arr_1down" size="24" class="arrow" />
-                                            <studip-icon shape="check-circle" size="24" class="check" />
+                                            <studip-icon shape="arr_1down" :size="24" class="arrow" />
+                                            <studip-icon shape="check-circle" :size="24" class="check" />
                                         </label>
                                         <div class="terms_of_use_description" :key="term.id + '_description'">
                                             <div class="description">
diff --git a/resources/vue/components/courseware/CoursewareImageMapBlock.vue b/resources/vue/components/courseware/CoursewareImageMapBlock.vue
index cfcd8f769de..50281949e32 100644
--- a/resources/vue/components/courseware/CoursewareImageMapBlock.vue
+++ b/resources/vue/components/courseware/CoursewareImageMapBlock.vue
@@ -103,7 +103,7 @@
                                     @input="drawScreen"
                                 >
                                     <template #open-indicator="selectAttributes">
-                                        <span v-bind="selectAttributes"><studip-icon shape="arr_1down" size="10"/></span>
+                                        <span v-bind="selectAttributes"><studip-icon shape="arr_1down" :size="10"/></span>
                                     </template>
                                     <template #no-options>
                                         {{ $gettext('Es steht keine Auswahl zur Verfügung.') }}
@@ -127,7 +127,7 @@
                                     @input="drawScreen"
                                 >
                                     <template #open-indicator="selectAttributes">
-                                        <span v-bind="selectAttributes"><studip-icon shape="arr_1down" size="10"/></span>
+                                        <span v-bind="selectAttributes"><studip-icon shape="arr_1down" :size="10"/></span>
                                     </template>
                                     <template #no-options>
                                         {{ $gettext('Es steht keine Auswahl zur Verfügung.') }}
diff --git a/resources/vue/components/courseware/CoursewareKeyPointBlock.vue b/resources/vue/components/courseware/CoursewareKeyPointBlock.vue
index 687ea0b589e..615619b6643 100644
--- a/resources/vue/components/courseware/CoursewareKeyPointBlock.vue
+++ b/resources/vue/components/courseware/CoursewareKeyPointBlock.vue
@@ -11,7 +11,7 @@
         >
             <template #content>
                 <div class="cw-keypoint-content" :class="['cw-keypoint-' + currentColor]">
-                    <studip-icon v-if="currentIcon" size="48" :shape="currentIcon" :role="currentRole"/>
+                    <studip-icon v-if="currentIcon" :size="48" :shape="currentIcon" :role="currentRole"/>
                     <p class="cw-keypoint-sentence">{{currentText}}</p>
                 </div>
             </template>
@@ -38,7 +38,7 @@
                             v-model="currentColor"
                         >
                             <template #open-indicator="selectAttributes">
-                                <span v-bind="selectAttributes"><studip-icon shape="arr_1down" size="10"/></span>
+                                <span v-bind="selectAttributes"><studip-icon shape="arr_1down" :size="10"/></span>
                             </template>
                             <template #no-options>
                                 {{ $gettext('Es steht keine Auswahl zur Verfügung.') }}
@@ -55,7 +55,7 @@
                         {{ $gettext('Icon') }}
                         <studip-select :options="icons" :clearable="false" v-model="currentIcon">
                             <template #open-indicator="selectAttributes">
-                                <span v-bind="selectAttributes"><studip-icon shape="arr_1down" size="10"/></span>
+                                <span v-bind="selectAttributes"><studip-icon shape="arr_1down" :size="10"/></span>
                             </template>
                             <template #no-options>
                                 {{ $gettext('Es steht keine Auswahl zur Verfügung.') }}
diff --git a/resources/vue/components/courseware/CoursewareTasksDialogDistribute.vue b/resources/vue/components/courseware/CoursewareTasksDialogDistribute.vue
index 78be6b908f6..213748d5e3a 100644
--- a/resources/vue/components/courseware/CoursewareTasksDialogDistribute.vue
+++ b/resources/vue/components/courseware/CoursewareTasksDialogDistribute.vue
@@ -27,10 +27,10 @@
                             :key="'label-' + unit.id"
                             :for="'cw-task-dist-source-unit' + unit.id"
                         >
-                            <div class="icon"><studip-icon shape="courseware" size="32" /></div>
+                            <div class="icon"><studip-icon shape="courseware" :size="32" /></div>
                             <div class="text">{{ unit.element.attributes.title }}</div>
-                            <studip-icon shape="radiobutton-unchecked" size="24" class="unchecked" />
-                            <studip-icon shape="check-circle" size="24" class="check" />
+                            <studip-icon shape="radiobutton-unchecked" :size="24" class="unchecked" />
+                            <studip-icon shape="check-circle" :size="24" class="check" />
                         </label>
                     </template>
                 </fieldset>
@@ -99,10 +99,10 @@
                             :key="'label-' + unit.id"
                             :for="'cw-task-dist-target-unit' + unit.id"
                         >
-                            <div class="icon"><studip-icon shape="courseware" size="32" /></div>
+                            <div class="icon"><studip-icon shape="courseware" :size="32" /></div>
                             <div class="text">{{ unit.element.attributes.title }}</div>
-                            <studip-icon shape="radiobutton-unchecked" size="24" class="unchecked" />
-                            <studip-icon shape="check-circle" size="24" class="check" />
+                            <studip-icon shape="radiobutton-unchecked" :size="24" class="unchecked" />
+                            <studip-icon shape="check-circle" :size="24" class="check" />
                         </label>
                     </template>
                 </fieldset>
diff --git a/resources/vue/components/courseware/CoursewareUnitItem.vue b/resources/vue/components/courseware/CoursewareUnitItem.vue
index 91b94a2e6b1..6823389e31d 100644
--- a/resources/vue/components/courseware/CoursewareUnitItem.vue
+++ b/resources/vue/components/courseware/CoursewareUnitItem.vue
@@ -107,9 +107,9 @@ export default {
             }
             if(this.userIsTeacher || !this.inCourseContext) {
                 menu.push({ id: 4, label: this.$gettext('Darstellung'), icon: 'colorpicker', emit: 'showLayout' });
-                menu.push({ id: 4, label: this.$gettext('Duplizieren'), icon: 'copy', emit: 'copyUnit' });
-                menu.push({ id: 5, label: this.$gettext('Exportieren'), icon: 'export', emit: 'showExport' });
-                menu.push({ id: 6, label: this.$gettext('Löschen'), icon: 'trash', emit: 'showDelete' });
+                menu.push({ id: 5, label: this.$gettext('Duplizieren'), icon: 'copy', emit: 'copyUnit' });
+                menu.push({ id: 6, label: this.$gettext('Exportieren'), icon: 'export', emit: 'showExport' });
+                menu.push({ id: 7, label: this.$gettext('Löschen'), icon: 'trash', emit: 'showDelete' });
             }
 
             return menu;
-- 
GitLab