diff --git a/frontend/src/components/TopBar.vue b/frontend/src/components/TopBar.vue index e0c9776f2..a3df86a15 100644 --- a/frontend/src/components/TopBar.vue +++ b/frontend/src/components/TopBar.vue @@ -155,10 +155,32 @@ - - Submissions - fas fa-user-edit - + + + + + + fas fa-user-edit + + + My Submissions + + + + + fas fa-users + + + All Submissions + + + + Stats @@ -331,19 +353,27 @@ Solved Quizzes - + - fas fa-user + fas fa-user-edit - Stats + My Submissions - + - fas fa-user-edit + fas fa-users - Submissions + All Submissions + + + + fas fa-user + + Stats + + diff --git a/frontend/src/router.ts b/frontend/src/router.ts index 9c2182dbb..6fccd4286 100644 --- a/frontend/src/router.ts +++ b/frontend/src/router.ts @@ -28,6 +28,7 @@ import CoursesView from '@/views/admin/Courses/CoursesView.vue'; import StudentSubmissionView from '@/views/student/submissions/SubmissionView.vue' import TeacherSubmissionView from '@/views/teacher/submissions/SubmissionView.vue' +import AllSubmissionsView from '@/views/student/submissions/AllSubmissionsView.vue' Vue.use(Router); @@ -207,6 +208,15 @@ let router = new Router({ title: APP_NAME + ' - Submissions', requiredAuth: 'Student' } + }, + { + path: 'all-submissions', + name: 'all-submissions', + component: AllSubmissionsView, + meta: { + title: process.env.VUE_APP_NAME + ' - All Submissions', + requiredAuth: 'Student' + } } ] diff --git a/frontend/src/services/RemoteServices.ts b/frontend/src/services/RemoteServices.ts index 1759b92cf..4d0e0c75b 100644 --- a/frontend/src/services/RemoteServices.ts +++ b/frontend/src/services/RemoteServices.ts @@ -656,7 +656,23 @@ export default class RemoteServices { throw Error(await this.errorMessage(error)); }); } - + + static async getAllStudentSubmissions(): Promise { + return httpClient + .get( + `/student/submission/all?executionId=${Store.getters.getCurrentCourse.courseExecutionId}` + ) + .then(response => { + return response.data.map((submission: any) => { + return new Submission(submission); + }); + }) + .catch(async error => { + throw Error(await this.errorMessage(error)); + }); + } + + static async exportAll() { return httpClient .get('/admin/export', { diff --git a/frontend/src/views/student/submissions/AllSubmissionsView.vue b/frontend/src/views/student/submissions/AllSubmissionsView.vue new file mode 100644 index 000000000..29fd49347 --- /dev/null +++ b/frontend/src/views/student/submissions/AllSubmissionsView.vue @@ -0,0 +1,13 @@ + + + + + \ No newline at end of file