load lv entry as meta info when querying stundenplan by lva & show titel in ger/eng; also show currently active Studiensemester; roomInfo constant defined aswell;

This commit is contained in:
Johann Hoffmann
2025-02-21 14:16:11 +01:00
parent 844c31885e
commit 7a0a2d756d
3 changed files with 44 additions and 6 deletions
@@ -153,6 +153,11 @@ class Stundenplan extends FHCAPI_Controller
$stundenplan_data = $this->StundenplanModel->getStundenplanLVA($start_date, $end_date, $lv_id);
$stundenplan_data = $this->getDataOrTerminateWithError($stundenplan_data) ?? [];
$this->expand_object_information($stundenplan_data);
// query lv itself in case its Stundenplan is being queried and it has no entries
$this->load->model('education/Lehrveranstaltung_model','LehrveranstaltungModel');
$lv = getData($this->LehrveranstaltungModel->load($lv_id))[0];
$this->addMeta('lv', $lv);
$this->terminateWithSuccess($stundenplan_data);
}
@@ -10,6 +10,14 @@ const RoomInformation = {
props:{
propsViewData: {
type: Object
},
rowMinHeight: {
type: String,
default: '100px'
},
eventMaxHeight: {
type: String,
default: '125px'
}
},
components: {
@@ -17,6 +25,12 @@ const RoomInformation = {
LvModal,
LvInfo,
},
provide() {
return {
rowMinHeight: this.rowMinHeight,
eventMaxHeight: this.eventMaxHeight
}
},
data() {
return {
events: null,
@@ -101,12 +115,15 @@ const RoomInformation = {
},
handleChangeMode(mode) {
const modeCapitalized = mode.charAt(0).toUpperCase() + mode.slice(1)
const date = this.currentDay.getFullYear() + "-" +
String(this.currentDay.getMonth() + 1).padStart(2, "0") + "-" +
String(this.currentDay.getDate()).padStart(2, "0");
this.$router.push({
name: "RoomInformation",
params: {
mode: modeCapitalized,
focus_date: this.currentDay.toISOString().split("T")[0],
focus_date: date,
ort_kurzbz: this.propsViewData.ort_kurzbz
}
})
@@ -16,6 +16,7 @@ const Stundenplan = {
eventCalendarDate: new CalendarDate(new Date()),
currentlySelectedEvent: null,
currentDay: this.propsViewData?.focus_date ? new Date(this.propsViewData.focus_date) : new Date(),
lv: null,
minimized: false,
studiensemester_kurzbz: null,
studiensemester_start: null,
@@ -73,8 +74,17 @@ const Stundenplan = {
let ende = new Date(this.studiensemester_ende);
ende = Math.floor(ende.getTime() / 1000);
let download_link = (format, version = "", target = "") => `${FHC_JS_DATA_STORAGE_OBJECT.app_root}cis/private/lvplan/stpl_kalender.php?type=student&pers_uid=${this.uid}&begin=${start}&ende=${ende}&format=${format}${version ? '&version=' + version : ''}${target ? '&target=' + target : ''}`;
return [{ title: "excel", icon: 'fa-solid fa-file-excel', link: download_link('excel') }, { title: "csv", icon: 'fa-solid fa-file-csv', link: download_link('csv') }, { title: "ical1", icon: 'fa-regular fa-calendar', link: download_link('ical', '1', 'ical') }, { title: "ical2", icon: 'fa-regular fa-calendar', link: download_link('ical', '2', 'ical') }];
let download_link =
(format, version = "", target = "") =>
`${FHC_JS_DATA_STORAGE_OBJECT.app_root}cis/private/lvplan/stpl_kalender.php?type=student&pers_uid=
${this.uid}&begin=${start}&ende=${ende}&format=${format}
${version ? '&version=' + version : ''}${target ? '&target=' + target : ''}`;
return [
{ title: "excel", icon: 'fa-solid fa-file-excel', link: download_link('excel') },
{ title: "csv", icon: 'fa-solid fa-file-csv', link: download_link('csv') },
{ title: "ical1", icon: 'fa-regular fa-calendar', link: download_link('ical', '1', 'ical') },
{ title: "ical2", icon: 'fa-regular fa-calendar', link: download_link('ical', '2', 'ical') }
];
},
weekFirstDay: function () {
return this.calendarDateToString(this.calendarDate.cdFirstDayOfWeek);
@@ -195,7 +205,9 @@ const Stundenplan = {
let promise_events = [];
result.forEach((promise_result) => {
if (promise_result.status === 'fulfilled' && promise_result.value.meta.status === "success") {
if(promise_result.value.meta?.lv) this.lv = promise_result.value.meta.lv
let data = promise_result.value.data;
// adding additional information to the events
if (data && data.forEach) {
@@ -232,7 +244,11 @@ const Stundenplan = {
if(this.$refs.lvmodal) this.$refs.lvmodal.hide()
},
template:/*html*/`
<h2>{{$p.t('lehre/stundenplan')}}</h2>
<h2>
{{$p.t('lehre/stundenplan')}}
<span style="padding-left: 0.4em;" v-show="studiensemester_kurzbz">{{studiensemester_kurzbz}}</span>
<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" />
<fhc-calendar