From ed69bd74ed1585afde3d8767ffdd09fc3c37f91e Mon Sep 17 00:00:00 2001 From: ma0068 Date: Wed, 3 Dec 2025 10:39:41 +0100 Subject: [PATCH] apply validation logic for dropdowns also for OverviewLvPlan.js --- .../components/Cis/LvPlan/OverviewLvPlan.js | 63 +++++++++++++------ public/js/components/Cis/LvPlan/StgOrg.js | 1 - 2 files changed, 43 insertions(+), 21 deletions(-) diff --git a/public/js/components/Cis/LvPlan/OverviewLvPlan.js b/public/js/components/Cis/LvPlan/OverviewLvPlan.js index dafdc13f5..01615ab60 100644 --- a/public/js/components/Cis/LvPlan/OverviewLvPlan.js +++ b/public/js/components/Cis/LvPlan/OverviewLvPlan.js @@ -22,34 +22,57 @@ export default { gruppe: null, }, listStg: [], - listSem: [], + listSem: [1,2,3,4,5,6,7,8,9,10], listVerband: [], listGroup: [], - // dataLvStudiengang: {} }; }, methods: { - loadLvPlan(){ - if(!this.formData.stgkz){ + loadLvPlan() { + if (!this.formData.stgkz) { this.$fhcAlert.alertError(this.$p.t('LvPlan', 'chooseStg')); return; } - console.log(this.$route.name, this.$route.params); + if (!this.formData.sem && (this.formData.verband || this.formData.gruppe)) { + this.$fhcAlert.alertError(this.$p.t('LvPlan', 'error_SemMissing')); + return; + } + + if (!this.formData.verband && this.formData.gruppe) { + this.$fhcAlert.alertError(this.$p.t('LvPlan', 'error_VerbandMissing')); + return; + } + + const params = { + mode: this.currentMode, + focus_date: this.currentDay, + stgkz: this.formData.stgkz, + sem: this.formData.sem, + verband: this.formData.verband, + gruppe: this.formData.gruppe, + }; + + //ensure logic: no value after a null value in route + if (params.sem == null) { + params.verband = null; + params.gruppe = null; + } + if (params.verband == null) { + params.gruppe = null; + } + + //delete all null values to avoid null in router + Object.keys(params).forEach( + key => params[key] == null && delete params[key] + ); + this.$router.push({ name: "StgOrgLvPlan", - params: { - mode: "Week", - focus_date: this.currentDay, - stgkz: this.formData.stgkz, - sem: this.formData.sem, - verband: this.formData.verband, - gruppe: this.formData.gruppe, - } + params, }); }, loadListSem(){ this.listSem = [...Array(this.maxSemester).keys()].map(i => i + 1); - this.loadListVerband(); }, loadListVerband(){ this.$api @@ -65,7 +88,6 @@ export default { .sort(); }) .catch(this.$fhcAlert.handleSystemError); - this.loadListGroup(); }, loadListGroup(){ this.$api @@ -105,14 +127,14 @@ export default { }, template: `
-
+
- + + + +