diff --git a/frontend/src/views/assignments/TeacherAssignment.vue b/frontend/src/views/assignments/TeacherAssignment.vue index e626a8be..caec311c 100644 --- a/frontend/src/views/assignments/TeacherAssignment.vue +++ b/frontend/src/views/assignments/TeacherAssignment.vue @@ -8,6 +8,8 @@ import type { Language } from "@/data-objects/language.ts"; import type { AssignmentResponse } from "@/controllers/assignments.ts"; import type { GroupDTO } from "@dwengo-1/common/interfaces/group"; +import type { AssignmentDTO } from "@dwengo-1/common/interfaces/assignment"; +import type { StudentDTO } from "@dwengo-1/common/interfaces/student"; const props = defineProps<{ classId: string; @@ -24,7 +26,7 @@ const groups = ref(); const learningPath = ref(); - const assignmentQueryResult = useAssignmentQuery(() => props.classId, props.assignmentId); + const assignmentQueryResult = useAssignmentQuery(props.classId, props.assignmentId); learningPath.value = assignmentQueryResult.data.value?.assignment?.learningPath; // Get learning path object const lpQueryResult = useGetLearningPathQuery( @@ -88,138 +90,185 @@ Const {groupProgressMap} = props.useGroupsWithProgress(
- -
- + + + - mdi-arrow-left - +
+ + mdi-arrow-left + - - mdi-delete - -
- {{ data.assignment.title }} - - - - {{ t("learning-path") }} - - - - - - {{ data.assignment.description }} - - - -

{{ t("groups") }}

-
- - + + - - - - -
-
- - - - {{ t("members") }} - - - - - {{ member.firstName + " " + member.lastName }} - - - - + + {{ assignmentResponse.data.assignment.description }} - + + +

{{ t("groups") }}

+
+ + + + + + + +
+
+ + + + {{ t("members") }} + + + + + {{ member.firstName + " " + member.lastName }} + + + + + + + Close + + + +
-
- - + + + + + + {{ t("group") }} + + {{ t("progress") }} + + {{ t("Members") }} + + + mdi-pencil + + + + + + + + + {{ g.groupNumber }} + mdi-menu-right + + + + + + + + {{ (g.members! as StudentDTO[]).map(member => member.username).join(', ') }} + + + mdi-delete + + + + + + + +
@@ -231,4 +280,106 @@ Const {groupProgressMap} = props.useGroupsWithProgress( overflow-x: auto; -webkit-overflow-scrolling: touch; } + + .header { + font-weight: bold !important; + background-color: #0e6942; + color: white; + padding: 10px; + } + + table thead th:first-child { + border-top-left-radius: 10px; + } + + .table thead th:last-child { + border-top-right-radius: 10px; + } + + .table tbody tr:nth-child(odd) { + background-color: white; + } + + .table tbody tr:nth-child(even) { + background-color: #f6faf2; + } + + td, + th { + border-bottom: 1px solid #0e6942; + border-top: 1px solid #0e6942; + } + + .table { + width: 90%; + padding-top: 10px; + border-collapse: collapse; + } + + h1 { + color: #0e6942; + text-transform: uppercase; + font-weight: bolder; + padding-top: 2%; + font-size: 50px; + } + + h2 { + color: #0e6942; + font-size: 30px; + } + + .join { + display: flex; + flex-direction: column; + gap: 20px; + margin-top: 50px; + } + + .link { + color: #0b75bb; + text-decoration: underline; + } + + main { + margin-left: 30px; + } + + @media screen and (max-width: 850px) { + h1 { + text-align: center; + padding-left: 0; + } + + .join { + text-align: center; + align-items: center; + margin-left: 0; + } + + .sheet { + width: 100%; + } + + main { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + margin: 5px; + } + + .custom-breakpoint { + flex-direction: column !important; + } + + .table { + width: 100%; + } + + .responsive-col { + max-width: 100% !important; + flex-basis: 100% !important; + } + }