diff --git a/application/controllers/api/frontend/v1/Studium.php b/application/controllers/api/frontend/v1/Studium.php index d17f0c1a1..1ec84ea8a 100644 --- a/application/controllers/api/frontend/v1/Studium.php +++ b/application/controllers/api/frontend/v1/Studium.php @@ -64,17 +64,25 @@ class Studium extends FHCAPI_Controller $studentLehrverband =$this->StudentlehrverbandModel->loadWhere(["student_uid" => getAuthUID(), "studiensemester_kurzbz" => $aktuelles_studiensemester->studiensemester_kurzbz]); $studentLehrverband = current($this->getDataOrTerminateWithError($studentLehrverband)); +/* //load later if needed to avoid warning $student_studiensemester = $studentLehrverband->studiensemester_kurzbz; $student_studiengang = $studentLehrverband->studiengang_kz; - $student_semester = $studentLehrverband->semester; + $student_semester = $studentLehrverband->semester;*/ + $student_studienplan = $this->getStudienPlanFromPrestudentStatus(getAuthPersonId())->studienplan_id; - if(!isset($parameter_studiensemester)) - $parameter_studiensemester = $student_studiensemester; - if(!isset($parameter_studiengang)) - $parameter_studiengang = $student_studiengang; - if(!isset($parameter_semester)) - $parameter_semester = $student_semester; + if(!isset($parameter_studiensemester)) { + $student_studiensemester = $studentLehrverband->studiensemester_kurzbz; + $parameter_studiensemester = $student_studiensemester; + } + if(!isset($parameter_studiengang)) { + $student_studiengang = $studentLehrverband->studiengang_kz; + $parameter_studiengang = $student_studiengang; + } + if(!isset($parameter_semester)) { + $student_semester = $studentLehrverband->semester; + $parameter_semester = $student_semester; + } if(!isset($parameter_studienplan)) $parameter_studienplan = $student_studienplan; } diff --git a/public/js/api/factory/cis/studium.js b/public/js/api/factory/cis/studium.js new file mode 100644 index 000000000..eed78a9ba --- /dev/null +++ b/public/js/api/factory/cis/studium.js @@ -0,0 +1,26 @@ +/** + * Copyright (C) 2026 fhcomplete.org + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +export default { + getAllStudienSemester(studiensemester, studiengang, semester, studienplan) { + return { + method: 'get', + url: 'api/frontend/v1/Studium/getStudienAllSemester/', + params: {studiensemester, studiengang, semester, studienplan} + }; + }, +} \ No newline at end of file diff --git a/public/js/components/Cis/Studium/Studium.js b/public/js/components/Cis/Studium/Studium.js index 1b7aff81b..af7692bbc 100644 --- a/public/js/components/Cis/Studium/Studium.js +++ b/public/js/components/Cis/Studium/Studium.js @@ -1,5 +1,6 @@ import LvUebersicht from "../Mylv/LvUebersicht.js"; +import ApiCisStudium from '../../../api/factory/cis/studium'; export default { data(){ @@ -26,6 +27,7 @@ export default { } }, + name: "OverviewStudiengaenge", components: { LvUebersicht, }, @@ -88,6 +90,27 @@ export default { studienordnung.selectedIndex = newSelectIndex; this.changeSelectedStudienPlan(studienordnung.value); }, + onStudiensemesterChange(event) { + const value = event.target.value; + this.setHash(value); + this.changeSelectedStudienSemester(value); + + }, + onStudiengangChange(event) { + const value = event.target.value; + this.setHash(value); + this.changeSelectedStudienGang(value); + }, + onSemesterChange(event) { + const value = event.target.value; + this.setHash(value); + this.changeSelectedSemester(value); + }, + onStudienordnungChange(event) { + const value = event.target.value; + this.setHash(value); + this.changeSelectedStudienPlan(value); + }, storeDataToLocalStorage(key,value){ localStorage.setItem(key, value); @@ -97,28 +120,32 @@ export default { return value; }, changeSelectedStudienSemester(studiensemester_kurzbz) { - this.$fhcApi.factory.studium.getAllStudienSemester(studiensemester_kurzbz, this.selectedStudiengang, this.selectedSemester, this.selectedStudienordnung) + return this.$api + .call(ApiCisStudium.getAllStudienSemester(studiensemester_kurzbz, this.selectedStudiengang, this.selectedSemester, this.selectedStudienordnung)) .then(data => data.data) .then(res => { this.extractPropertyValues(res); }) }, changeSelectedStudienGang(studiengang_kz) { - this.$fhcApi.factory.studium.getAllStudienSemester(this.selectedStudiensemester, studiengang_kz, this.selectedSemester, this.selectedStudienordnung) + return this.$api + .call(ApiCisStudium.getAllStudienSemester(this.selectedStudiensemester, studiengang_kz, this.selectedSemester, this.selectedStudienordnung)) .then(data => data.data) .then(res => { this.extractPropertyValues(res); }) }, changeSelectedSemester(semester) { - this.$fhcApi.factory.studium.getAllStudienSemester(this.selectedStudiensemester, this.selectedStudiengang, semester, this.selectedStudienordnung) + return this.$api + .call(ApiCisStudium.getAllStudienSemester(this.selectedStudiensemester, this.selectedStudiengang, semester, this.selectedStudienordnung)) .then(data => data.data) .then(res => { this.extractPropertyValues(res); }) }, changeSelectedStudienPlan(studienplan_id) { - this.$fhcApi.factory.studium.getAllStudienSemester(this.selectedStudiensemester, this.selectedStudiengang, this.selectedSemester, studienplan_id) + return this.$api + .call(ApiCisStudium.getAllStudienSemester(this.selectedStudiensemester, this.selectedStudiengang, this.selectedSemester, studienplan_id)) .then(data => data.data) .then(res => { this.extractPropertyValues(res); @@ -160,6 +187,7 @@ export default { this.studiengaenge = studiengang.all; this.selectedStudiengang = studiengang.preselected?.studiengang_kz; + this.semester = semester.all; this.selectedSemester = semester?.preselected; @@ -256,12 +284,13 @@ export default { const studienordnung = JSON.parse(this.getDataFromLocalStorage("studienordnung")) ?? undefined; // only fetch default data if no data is stored in the local storage - - this.$fhcApi.factory.studium.getAllStudienSemester(studiensemester, studiengang, semester, studienordnung) - .then(data => data.data) - .then(res => { - this.extractPropertyValues(res); - }) + + this.$api + .call(ApiCisStudium.getAllStudienSemester(studiensemester, studiengang, semester, studienordnung)) + .then(data => data.data) + .then(res => { + this.extractPropertyValues(res); + }) }, template: ` @@ -284,8 +313,8 @@ export default { - + - + - + - +