From adc812556d0a5e21a26701615c72ff251ba7e2c3 Mon Sep 17 00:00:00 2001 From: "B. Sc Pius Gyamenah" <pgyamenah001@st.ug.edu.gh> Date: Thu, 25 Aug 2022 07:39:39 +0000 Subject: [PATCH] Biest #1002 Closes #1002 and #1058 Merge request studip/studip!883 --- .../courseware/CoursewareCollapsibleBox.vue | 14 +++++++++++++- .../courseware/CoursewareEmbedBlock.vue | 19 +++++++++++++++++-- .../components/courseware/CoursewareTab.vue | 6 ++++++ 3 files changed, 36 insertions(+), 3 deletions(-) diff --git a/resources/vue/components/courseware/CoursewareCollapsibleBox.vue b/resources/vue/components/courseware/CoursewareCollapsibleBox.vue index e4a7497c87a..c4f9233140c 100644 --- a/resources/vue/components/courseware/CoursewareCollapsibleBox.vue +++ b/resources/vue/components/courseware/CoursewareCollapsibleBox.vue @@ -35,7 +35,19 @@ export default { isOpen: this.open, }; }, - methods: {}, + mounted(){ + this.updateCollapsible(); + }, + updated() { + this.updateCollapsible(); + }, + methods: { + updateCollapsible() { + if (this.isOpen) { + STUDIP.eventBus.emit('courseware:update-collapsible', { 'uid': this._uid }); + } + } + }, watch: { open(state) { this.isOpen = state; diff --git a/resources/vue/components/courseware/CoursewareEmbedBlock.vue b/resources/vue/components/courseware/CoursewareEmbedBlock.vue index 2808ffa2478..ec8a4259985 100644 --- a/resources/vue/components/courseware/CoursewareEmbedBlock.vue +++ b/resources/vue/components/courseware/CoursewareEmbedBlock.vue @@ -154,9 +154,17 @@ export default { }, mounted() { this.initCurrentData(); - window.addEventListener('resize', this.calcContentHeight); }, + + created () { + STUDIP.eventBus.on('courseware:update-tab', (data) => { + this.recalculateContentHeight(data); + }); + STUDIP.eventBus.on('courseware:update-collapsible', (data) => { + this.recalculateContentHeight(data); + }); + }, destroyed() { window.removeEventListener('resize', this.calcContentHeight); }, @@ -172,8 +180,15 @@ export default { this.currentEndTime = this.endTime; this.oembedData = this.oembed; if (this.oembedData !== null) { - this.calcContentHeight(); this.updateTime(); + this.calcContentHeight(); + } + }, + recalculateContentHeight(data){ + if (this.$parent._uid === data.uid) { + if (this.oembedData !== null) { + this.calcContentHeight(); + } } }, addTimeData(data) { diff --git a/resources/vue/components/courseware/CoursewareTab.vue b/resources/vue/components/courseware/CoursewareTab.vue index 5c5217283f8..6be50af897e 100644 --- a/resources/vue/components/courseware/CoursewareTab.vue +++ b/resources/vue/components/courseware/CoursewareTab.vue @@ -36,6 +36,12 @@ export default { mounted() { this.isActive = this.selected; }, + updated () { + if (this.isActive) { + STUDIP.eventBus.emit('courseware:update-tab',{ 'uid': this._uid }); + } + + }, watch: { selected(newValue) { this.isActive = newValue; -- GitLab