mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-21 17:02:19 +00:00
46 lines
1.4 KiB
JavaScript
46 lines
1.4 KiB
JavaScript
import MylvSemesterStudiengang from "./Semester/Studiengang.js";
|
|
|
|
export default {
|
|
components: {
|
|
MylvSemesterStudiengang
|
|
},
|
|
provide() {
|
|
return {
|
|
studien_semester: Vue.computed(() => this.semester)
|
|
}
|
|
},
|
|
props: {
|
|
semester: [String, Number],
|
|
lvs: Array
|
|
},
|
|
computed: {
|
|
ready() { return this.lvs !== null; },
|
|
studiengaenge() {
|
|
return [... new Map(
|
|
this.lvs
|
|
.map(lv => [
|
|
lv.studiengang_kz + '#' + lv.semester,
|
|
{
|
|
studiengang_kz: lv.studiengang_kz,
|
|
bezeichnung: lv.sg_bezeichnung,
|
|
sg_bezeichnung_eng: lv.sg_bezeichnung_eng,
|
|
kuerzel: lv.studiengang_kuerzel,
|
|
semester: lv.semester
|
|
}
|
|
])
|
|
).values()].sort((a, b) => a.bezeichnung.toLowerCase() == b.bezeichnung.toLowerCase() ? a.semester > b.semester : a.bezeichnung.toLowerCase() > b.bezeichnung.toLowerCase());
|
|
},
|
|
},
|
|
methods: {
|
|
lvsForStudiengang(studiengang) {
|
|
return this.lvs.filter(lv => lv.studiengang_kz == studiengang.studiengang_kz && lv.semester == studiengang.semester);
|
|
}
|
|
},
|
|
template: `
|
|
<div class="mylv-semester" v-if="ready">
|
|
<mylv-semester-studiengang v-for="studiengang in studiengaenge" :key="studiengang.studiengang_kz" v-bind="studiengang" :lvs="lvsForStudiengang(studiengang)" :semesterInfo="$props.semester" />
|
|
</div>
|
|
<div class="mylv-semester text-center" v-else>
|
|
<i class="fa-solid fa-spinner fa-pulse fa-3x"></i>
|
|
</div>`
|
|
}; |