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 {
-