From 7a0a2d756d364869bb14bb73ff08613f14ea9433 Mon Sep 17 00:00:00 2001 From: Johann Hoffmann Date: Fri, 21 Feb 2025 14:16:11 +0100 Subject: [PATCH] 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; --- .../api/frontend/v1/Stundenplan.php | 5 ++++ .../js/components/Cis/Mylv/RoomInformation.js | 21 ++++++++++++++-- .../components/Cis/Stundenplan/Stundenplan.js | 24 +++++++++++++++---- 3 files changed, 44 insertions(+), 6 deletions(-) diff --git a/application/controllers/api/frontend/v1/Stundenplan.php b/application/controllers/api/frontend/v1/Stundenplan.php index 0a56dac71..2ec02fea9 100644 --- a/application/controllers/api/frontend/v1/Stundenplan.php +++ b/application/controllers/api/frontend/v1/Stundenplan.php @@ -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); } diff --git a/public/js/components/Cis/Mylv/RoomInformation.js b/public/js/components/Cis/Mylv/RoomInformation.js index 255e66164..8a7354305 100644 --- a/public/js/components/Cis/Mylv/RoomInformation.js +++ b/public/js/components/Cis/Mylv/RoomInformation.js @@ -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 } }) diff --git a/public/js/components/Cis/Stundenplan/Stundenplan.js b/public/js/components/Cis/Stundenplan/Stundenplan.js index 1e455a6c9..3fee43058 100644 --- a/public/js/components/Cis/Stundenplan/Stundenplan.js +++ b/public/js/components/Cis/Stundenplan/Stundenplan.js @@ -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*/` -

{{$p.t('lehre/stundenplan')}}

+

+ {{$p.t('lehre/stundenplan')}} + {{studiensemester_kurzbz}} + {{ $p.user_language.value === 'German' ? lv?.bezeichnung : lv?.bezeichnung_english}} +