refactor(moodle Event Info):adds the component for moodle event information to the rendered components from the moodle Event

This commit is contained in:
SimonGschnell
2025-06-02 09:23:14 +02:00
parent a5bb72baf6
commit c62b587299
3 changed files with 12 additions and 53 deletions
-51
View File
@@ -10,13 +10,6 @@ export default {
}
},
computed: {
LV_TYPES: function () {
return {
lehreinheit: "lehreinheit",
reservierung: "reservierung",
moodle: "moodle",
};
},
lektorenLinks: function () {
if (!this.event || !Array.isArray(this.event.lektor) || !this.event.lektor.length) return "a";
@@ -56,49 +49,6 @@ export default {
},
template:/*html*/`
<table class="table table-hover mb-4">
<template v-if="event.type == LV_TYPES.moodle">
<tbody>
<tr>
<th>{{
$p.t('global','datum')?
$p.t('global','datum')+':'
:''
}}</th>
<td>{{methodFormatDate(event.datum)}}</td>
</tr>
<tr>
<th>{{$p.t('global','aktivitaet')}}:</th>
<td v-html="event?.assignment"></td>
</tr>
<tr>
<th>{{$p.t('global','typ')}}:</th>
<td><img v-if="event?.activityIcon" class="me-1" :src="event?.activityIcon" />{{event?.purpose}}</td>
</tr>
<tr>
<th>{{$p.t('fristenmanagement','frist')}}:</th>
<td>{{start_time}}</td>
</tr>
<tr v-if="event?.actionname">
<th>{{$p.t('lvinfo','actionname')}}:</th>
<td>
{{event?.actionname}}
</td>
</tr>
<tr v-if="event?.overdue">
<th>{{$p.t('lvinfo','overdue')}}:</th>
<td>
{{$p.t('lvinfo','overdueEvent')}}
</td>
</tr>
<tr >
<th>{{$p.t('lvinfo','moodleLink')}}</th>
<td>
<a :href="event?.url" target="_blank"><i class="fa fa-arrow-up-right-from-square me-1"></i></a>
</td>
</tr>
</tbody>
</template>
<template v-else>
<tbody>
<tr>
<th>{{
@@ -157,7 +107,6 @@ export default {
<td>{{event.organisationseinheit}}</td>
</tr>
</tbody>
</template>
</table>
`
}
+1 -1
View File
@@ -89,7 +89,7 @@ export default {
{{$p.t('lvinfo','lehrveranstaltungsinformationen')}}
</template>
</h3>
<lv-info :event="event"></lv-info>
<slot name="info"></slot>
<template v-if="showMenu && this.menu">
<h3>{{$p.t('lehre','lehrveranstaltungsmenue')}}</h3>
<lv-menu :menu="menu"></lv-menu>
@@ -113,6 +113,12 @@ const Stundenplan = {
default: return !this.renderers? null : Vue.defineAsyncComponent(() => import(this.renderers[name]))
}
},
renderComponentInfo(name) {
switch (name) {
case 'moodleEvent': return !this.renderers? null: Vue.defineAsyncComponent(() => import(this.renderers[name]));
default: return LvInfo;
}
},
fetchStudiensemesterDetails: async function (date) {
return this.$api.call(ApiStundenplan.studiensemesterDateInterval(date));
},
@@ -262,7 +268,11 @@ const Stundenplan = {
<span style="padding-left: 0.5em;" v-show="propsViewData?.lv_id && lv"> {{ $p.user_language.value === 'German' ? lv?.bezeichnung : lv?.bezeichnung_english}}</span>
</h2>
<hr>
<lv-modal v-if="currentlySelectedEvent" :event="currentlySelectedEvent" ref="lvmodal" />
<lv-modal v-if="currentlySelectedEvent" :event="currentlySelectedEvent" ref="lvmodal" >
<template #info>
<component :is="renderComponentInfo(currentlySelectedEvent.type+'Event')" :event="currentlySelectedEvent" ></component>
</template>
</lv-modal>
<fhc-calendar
ref="calendar"
@selectedEvent="setSelectedEvent"