diff --git a/application/config/routes.php b/application/config/routes.php index 52bf535ca..de8e6e098 100644 --- a/application/config/routes.php +++ b/application/config/routes.php @@ -63,6 +63,7 @@ $route['api/v1/system/[S|s]prache/(:any)'] = 'api/v1/system/sprache2/$1'; $route['Cis/LvPlan/.*'] = 'Cis/LvPlan/index/$1'; $route['Cis/MyLvPlan/.*'] = 'Cis/MyLvPlan/index/$1'; +$route['Cis/MyLv/.*'] = 'Cis/MyLv/index/$1'; // Studierendenverwaltung List Routes $route['api/frontend/v1/stv/[sS]tudents/inout'] = 'api/frontend/v1/stv/Students/index'; diff --git a/public/js/apps/Dashboard/Fhc.js b/public/js/apps/Dashboard/Fhc.js index 870d9d1d6..093ad815b 100644 --- a/public/js/apps/Dashboard/Fhc.js +++ b/public/js/apps/Dashboard/Fhc.js @@ -139,10 +139,10 @@ const router = VueRouter.createRouter({ props: true }, { - path: `/Cis/MyLv`, + path: `/Cis/MyLv/:studiensemester?`, name: 'MyLv', component: MylvStudent, - props: true + props: true, }, { path: `/Cis/MyLv/Info/:studien_semester/:lehrveranstaltung_id`, diff --git a/public/js/components/Cis/Mylv/Student.js b/public/js/components/Cis/Mylv/Student.js index 508acb883..4cc45b85f 100644 --- a/public/js/components/Cis/Mylv/Student.js +++ b/public/js/components/Cis/Mylv/Student.js @@ -75,21 +75,26 @@ export default { this.$refs.studiensemester.selectedIndex++; this.$refs.studiensemester.dispatchEvent(new Event('change', { bubbles: true })); }, - setHash(val) { - // TODO: make this a router param to enable history - location.hash = val; + updateRouter(val) { + this.$router.push(`/Cis/MyLv/${val}`); } }, created() { axios.get(FHC_JS_DATA_STORAGE_OBJECT.app_root + FHC_JS_DATA_STORAGE_OBJECT.ci_router + '/components/Cis/Mylv/Studiensemester').then(res => { this.studiensemester = res.data.retval || []; - const hash = location.hash.substring(1); - if (hash && this.studiensemester.filter(s => s.studiensemester_kurzbz == hash).length) - this.currentSemester = hash; + const routerStudiensemester = this.$route.params.studiensemester; + if (routerStudiensemester && this.studiensemester.filter(s => s.studiensemester_kurzbz == routerStudiensemester).length) + this.currentSemester = routerStudiensemester; else this.currentSemester = this.nearestSem; }); }, + beforeRouteUpdate(to, from, next){ + if (to.params.studiensemester && this.studiensemester.filter(s => s.studiensemester_kurzbz == to.params.studiensemester).length && to.params.studiensemester != this.currentSemester) + this.currentSemester = to.params.studiensemester; + next(); + + }, template: `

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

@@ -104,7 +109,7 @@ export default { -