From 03ff85d29d14e4d41858098e3a216d187dc02847 Mon Sep 17 00:00:00 2001
From: Maximilian Anzinger
<44003963+MaximilianAnzinger@users.noreply.github.com>
Date: Tue, 14 Nov 2023 20:24:27 +0100
Subject: [PATCH 1/3] add redirect button and test
---
.../webapp/app/overview/header-course.component.html | 6 ++++++
src/main/webapp/app/overview/header-course.component.ts | 8 ++++++++
src/main/webapp/i18n/de/student-dashboard.json | 1 +
src/main/webapp/i18n/en/student-dashboard.json | 1 +
.../component/course/header-course.component.spec.ts | 9 +++++++++
5 files changed, 25 insertions(+)
diff --git a/src/main/webapp/app/overview/header-course.component.html b/src/main/webapp/app/overview/header-course.component.html
index 5a895864ddbd..2ba6762f9a82 100644
--- a/src/main/webapp/app/overview/header-course.component.html
+++ b/src/main/webapp/app/overview/header-course.component.html
@@ -19,6 +19,12 @@
+
+
diff --git a/src/main/webapp/app/overview/header-course.component.ts b/src/main/webapp/app/overview/header-course.component.ts
index cf75a61e33e8..2c8024691e53 100644
--- a/src/main/webapp/app/overview/header-course.component.ts
+++ b/src/main/webapp/app/overview/header-course.component.ts
@@ -63,4 +63,12 @@ export class HeaderCourseComponent implements OnChanges {
redirectToCourseManagement() {
this.router.navigate(['course-management', this.course.id]);
}
+
+ shouldShowGoToStudentViewButton() {
+ return this.router.url.startsWith('/course-management');
+ }
+
+ redirectToStudentView() {
+ this.router.navigate(['courses', this.course.id]);
+ }
}
diff --git a/src/main/webapp/i18n/de/student-dashboard.json b/src/main/webapp/i18n/de/student-dashboard.json
index 2a315c9313d5..ba8be7b9ae50 100644
--- a/src/main/webapp/i18n/de/student-dashboard.json
+++ b/src/main/webapp/i18n/de/student-dashboard.json
@@ -28,6 +28,7 @@
"showMore": "Mehr anzeigen",
"showLess": "Weniger anzeigen",
"manage": "Verwalten",
+ "studentView": "Studentenansicht",
"menu": {
"exercises": "Aufgaben",
"statistics": "Statistiken",
diff --git a/src/main/webapp/i18n/en/student-dashboard.json b/src/main/webapp/i18n/en/student-dashboard.json
index 85dfddc163c9..1797b7d68581 100644
--- a/src/main/webapp/i18n/en/student-dashboard.json
+++ b/src/main/webapp/i18n/en/student-dashboard.json
@@ -28,6 +28,7 @@
"showMore": "Show more",
"showLess": "Show less",
"manage": "Manage",
+ "studentView": "Student view",
"menu": {
"exercises": "Exercises",
"statistics": "Statistics",
diff --git a/src/test/javascript/spec/component/course/header-course.component.spec.ts b/src/test/javascript/spec/component/course/header-course.component.spec.ts
index cda9b5525791..f6618c7ed78b 100644
--- a/src/test/javascript/spec/component/course/header-course.component.spec.ts
+++ b/src/test/javascript/spec/component/course/header-course.component.spec.ts
@@ -118,4 +118,13 @@ describe('Header Course Component', () => {
component.redirectToCourseManagement();
expect(navigateSpy).toHaveBeenCalledWith(['course-management', 234]);
});
+
+ it('should redirect to course student view', () => {
+ component.course = courseWithShortDescription;
+ const router = TestBed.inject(Router);
+ const navigateSpy = jest.spyOn(router, 'navigate');
+
+ component.redirectToStudentView();
+ expect(navigateSpy).toHaveBeenCalledWith(['courses', 234]);
+ });
});
From aa16ce2e2c10e5e5a168097bf2ef3e02c5ac198d Mon Sep 17 00:00:00 2001
From: Maximilian Anzinger
<44003963+MaximilianAnzinger@users.noreply.github.com>
Date: Tue, 14 Nov 2023 23:27:18 +0100
Subject: [PATCH 2/3] replace buttons by links
---
.../app/overview/header-course.component.html | 8 +++----
.../app/overview/header-course.component.ts | 4 ----
.../course/header-course.component.spec.ts | 24 ++++++++-----------
3 files changed, 14 insertions(+), 22 deletions(-)
diff --git a/src/main/webapp/app/overview/header-course.component.html b/src/main/webapp/app/overview/header-course.component.html
index 2ba6762f9a82..303f9c3f8b4e 100644
--- a/src/main/webapp/app/overview/header-course.component.html
+++ b/src/main/webapp/app/overview/header-course.component.html
@@ -15,15 +15,15 @@
diff --git a/src/main/webapp/app/overview/header-course.component.ts b/src/main/webapp/app/overview/header-course.component.ts
index 2c8024691e53..0663fe358f95 100644
--- a/src/main/webapp/app/overview/header-course.component.ts
+++ b/src/main/webapp/app/overview/header-course.component.ts
@@ -67,8 +67,4 @@ export class HeaderCourseComponent implements OnChanges {
shouldShowGoToStudentViewButton() {
return this.router.url.startsWith('/course-management');
}
-
- redirectToStudentView() {
- this.router.navigate(['courses', this.course.id]);
- }
}
diff --git a/src/test/javascript/spec/component/course/header-course.component.spec.ts b/src/test/javascript/spec/component/course/header-course.component.spec.ts
index f6618c7ed78b..f6b2bf5819f4 100644
--- a/src/test/javascript/spec/component/course/header-course.component.spec.ts
+++ b/src/test/javascript/spec/component/course/header-course.component.spec.ts
@@ -88,7 +88,7 @@ describe('Header Course Component', () => {
expect(showManageLectureButton).toBeTrue();
});
- it('should not display manage button in course management', () => {
+ it('should not display manage button but go to student view button in course management', () => {
component.course = courseWithShortDescription;
component.course!.isAtLeastTutor = true;
const router = TestBed.inject(Router);
@@ -97,6 +97,9 @@ describe('Header Course Component', () => {
const showManageLectureButton = component.shouldShowGoToCourseManagementButton();
expect(showManageLectureButton).toBeFalse();
+
+ const showStudentViewButton = component.shouldShowGoToStudentViewButton();
+ expect(showStudentViewButton).toBeTrue();
});
it('should not display manage button to student', () => {
@@ -110,21 +113,14 @@ describe('Header Course Component', () => {
expect(showManageLectureButton).toBeFalse();
});
- it('should redirect to course management', () => {
- component.course = courseWithShortDescription;
- const router = TestBed.inject(Router);
- const navigateSpy = jest.spyOn(router, 'navigate');
-
- component.redirectToCourseManagement();
- expect(navigateSpy).toHaveBeenCalledWith(['course-management', 234]);
- });
-
- it('should redirect to course student view', () => {
+ it('should not display student view button in student view', () => {
component.course = courseWithShortDescription;
+ component.course!.isAtLeastTutor = false;
const router = TestBed.inject(Router);
- const navigateSpy = jest.spyOn(router, 'navigate');
+ const urlSpy = jest.spyOn(router, 'url', 'get');
+ urlSpy.mockReturnValue('/courses');
- component.redirectToStudentView();
- expect(navigateSpy).toHaveBeenCalledWith(['courses', 234]);
+ const showManageLectureButton = component.shouldShowGoToStudentViewButton();
+ expect(showManageLectureButton).toBeFalse();
});
});
From 205f1b97075ed76a22c158d595abfc08cd6dee3a Mon Sep 17 00:00:00 2001
From: Maximilian Anzinger
<44003963+MaximilianAnzinger@users.noreply.github.com>
Date: Wed, 15 Nov 2023 11:01:07 +0100
Subject: [PATCH 3/3] apply lucas suggestions
---
.../app/overview/header-course.component.html | 12 +++++-
.../app/overview/header-course.component.ts | 15 +------
.../course/header-course.component.spec.ts | 42 ++++++++++++-------
3 files changed, 38 insertions(+), 31 deletions(-)
diff --git a/src/main/webapp/app/overview/header-course.component.html b/src/main/webapp/app/overview/header-course.component.html
index 303f9c3f8b4e..d694ef2d356d 100644
--- a/src/main/webapp/app/overview/header-course.component.html
+++ b/src/main/webapp/app/overview/header-course.component.html
@@ -14,13 +14,21 @@
-