2929 <q-list >
3030 <template v-for =" course in user_courses " :key =" course .course_id " >
3131 <q-item clickable v-close-popup
32- @click =" changeCourse(course.course_id, course.course_name )" >
32+ @click =" changeCourse(course.course_id)" >
3333 <q-item-section >
3434 <q-item-label >{{course.course_name}}</q-item-label >
3535 </q-item-section >
@@ -87,30 +87,17 @@ const full_name = computed(() => session.full_name);
8787const user_courses = computed (() =>
8888 session .user_courses .filter (course => course .course_name !== current_course_name .value ));
8989
90- const changeCourse = (course_id ? : number , course_name ? : string ) => {
91- logger .debug (` [MenuBar/changeCourse]: changing the course to ${course_name ?? ' unknown' } ` );
92- const new_course = session .user_courses .find (course => course .course_name === course_name );
93- const new_course_id = new_course ?.course_id ?? 0 ;
94- if (! new_course || new_course_id == 0 ) return ;
95- const role = new_course ?.role ?? ' unknown' ;
96-
97- if (role == ' unknown' ) {
98- logger .error ([' MenuBar/changeCourse: the role is not defined' ]);
99- }
90+ const changeCourse = (course_id : number ) => {
91+ logger .debug (` [MenuBar/changeCourse]: changing the course to #${course_id } ` );
92+ session .setCourse (course_id );
10093
10194 // This sets the path to the instructor or student dashboard.
10295 // This only works currently for roles of student/instructor. We'll need to think about
10396 // the UI for other roles.
104-
105- if (new_course != undefined ) {
106- router .push (` /courses/${new_course_id }/${role } ` ).then (() => {
107- session .setCourse ({
108- course_name: new_course .course_name ?? ' unknown' ,
109- course_id: new_course_id
110- });
111- }).catch (() => {
112- logger .error (' [MenuBar/changeCourse]: Error occurred.' );
113- });
97+ if (! session .course .role || session .course .role == ' unknown' ) {
98+ logger .error (` [MenuBar/changeCourse]: the role is not defined for course #${course_id } ` );
99+ } else {
100+ void router .push (` /courses/${course_id }/${session .course .role } ` );
114101 }
115102};
116103
@@ -121,6 +108,6 @@ const availableLocales = computed(() =>
121108const logout = async () => {
122109 await endSession ();
123110 void session .logout ();
124- void router .push (' / login' );
111+ void router .push ({ name: ' login' } );
125112};
126113 </script >
0 commit comments