From 2898085c9dee8fd9c561178f5b0956159f2faee4 Mon Sep 17 00:00:00 2001 From: Ron Lucke <lucke@elan-ev.de> Date: Fri, 5 Jul 2024 14:03:21 +0000 Subject: [PATCH] fix #4344 Closes #4344 Merge request studip/studip!3172 --- .../containers/CoursewareTabsContainer.vue | 15 ++++++++++++++- resources/vue/mixins/courseware/container.js | 6 ++++-- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/resources/vue/components/courseware/containers/CoursewareTabsContainer.vue b/resources/vue/components/courseware/containers/CoursewareTabsContainer.vue index fd7450c7797..e9c45ca4fe6 100644 --- a/resources/vue/components/courseware/containers/CoursewareTabsContainer.vue +++ b/resources/vue/components/courseware/containers/CoursewareTabsContainer.vue @@ -24,7 +24,7 @@ {{ $gettext('Drücken Sie die Leertaste, um neu anzuordnen.') }} </span> </template> - <courseware-tabs> + <courseware-tabs @selectTab="selectTabHandler"> <courseware-tab v-for="(section, index) in currentSections" :key="index" @@ -205,6 +205,7 @@ export default { loadContainer: 'courseware-containers/loadById', lockObject: 'lockObject', unlockObject: 'unlockObject', + storeContainerRecord: 'courseware-containers/storeRecord' }), initCurrentData() { this.currentContainer = _.cloneDeep(this.container); @@ -402,6 +403,18 @@ export default { , {blockTitle: block.attributes.title, pos: currentIndex + 1, listLength: this.currentSections[sectionIndex].blocks.length} ); this.storeSort(); + }, + selectTabHandler(event) { + const tabIndex = event.index; + let container = _.cloneDeep(this.container); + container.activeSection = tabIndex; + this.storeContainerRecord(container); + if (this.blockAdder.container.id === this.container.id) { + this.setAdderStorage({ + container: this.container, + section: tabIndex + }); + } } }, watch: { diff --git a/resources/vue/mixins/courseware/container.js b/resources/vue/mixins/courseware/container.js index 2eb7549949e..de162f9d8f4 100644 --- a/resources/vue/mixins/courseware/container.js +++ b/resources/vue/mixins/courseware/container.js @@ -253,9 +253,11 @@ const containerMixin = { // choose the last container and its last section as the default adder slot // for adding blocks and containers via click if (this.containers) { + const lastContainer = this.containers[this.containers.length - 1]; + const section = lastContainer.activeSection ?? 0; this.setAdderStorage({ - container: this.containers[this.containers.length - 1], - section: this.containers[this.containers.length - 1].attributes.payload.sections.length - 1 + container: lastContainer, + section: section }); } }, -- GitLab