diff --git a/client/src/pages/learningPath/circlePage/DocumentListItem.vue b/client/src/pages/learningPath/circlePage/DocumentListItem.vue new file mode 100644 index 00000000..c9b4632f --- /dev/null +++ b/client/src/pages/learningPath/circlePage/DocumentListItem.vue @@ -0,0 +1,33 @@ + + + diff --git a/client/src/pages/learningPath/circlePage/DocumentSection.vue b/client/src/pages/learningPath/circlePage/DocumentSection.vue index f27cd515..f5172f21 100644 --- a/client/src/pages/learningPath/circlePage/DocumentSection.vue +++ b/client/src/pages/learningPath/circlePage/DocumentSection.vue @@ -1,48 +1,38 @@ +
-
- {{ $t("circlePage.documents.expertDescription") }} -
-
@@ -79,9 +69,10 @@ import ItModal from "@/components/ui/ItModal.vue"; import { uploadCircleDocument } from "@/services/files"; import { useCircleStore } from "@/stores/circle"; import { useCourseSessionsStore } from "@/stores/courseSessions"; -import type { DocumentUploadData } from "@/types"; +import type { CircleDocument, DocumentUploadData } from "@/types"; import log from "loglevel"; import { computed, ref, watch } from "vue"; +import DocumentListItem from "./DocumentListItem.vue"; import DocumentUploadForm from "./DocumentUploadForm.vue"; const courseSessionsStore = useCourseSessionsStore(); const circleStore = useCircleStore(); diff --git a/client/src/stores/courseSessions.ts b/client/src/stores/courseSessions.ts index c928586a..3124a1e2 100644 --- a/client/src/stores/courseSessions.ts +++ b/client/src/stores/courseSessions.ts @@ -182,21 +182,23 @@ export const useCourseSessionsStore = defineStore("courseSessions", () => { const circleDocuments = computed(() => { const circleStore = useCircleStore(); - return circleStore.circle?.learningSequences - .map((ls) => ({ id: ls.id, title: ls.title, documents: [] })) - .map((ls: { id: number; title: string; documents: CircleDocument[] }) => { - if (currentCourseSession.value === undefined) { - return ls; - } - - for (const document of currentCourseSession.value.documents) { - if (document.learning_sequence === ls.id) { - ls.documents.push(document); + return ( + circleStore.circle?.learningSequences + .map((ls) => ({ id: ls.id, title: ls.title, documents: [] })) + .map((ls: { id: number; title: string; documents: CircleDocument[] }) => { + if (currentCourseSession.value === undefined) { + return ls; } - } - return ls; - }) - .filter((ls) => ls.documents.length > 0); + + for (const document of currentCourseSession.value.documents) { + if (document.learning_sequence === ls.id) { + ls.documents.push(document); + } + } + return ls; + }) + .filter((ls) => ls.documents.length > 0) || [] + ); }); function addDocument(document: CircleDocument) { diff --git a/client/tailwind.config.js b/client/tailwind.config.js index baef2d07..6b0011e2 100644 --- a/client/tailwind.config.js +++ b/client/tailwind.config.js @@ -51,11 +51,13 @@ module.exports = { ], "rating-scale-slim": ["bar bar bar", "fst mid fth"], "icon-card": ["icon title", "icon value"], + "document-list-item": ["title icons", "subtitle icons"], }, gridTemplateColumns: { "horizontal-bar-chart": "50px 1fr 300px 4fr 300px 1fr", "horizontal-bar-chart-slim": "50px 1fr 78px 4fr 78px 1fr", "icon-card": "60px auto", + "document-list-item": "1fr 100px", }, gridTemplateRows: { "horizontal-bar-chart": "200px 40px", diff --git a/server/vbv_lernwelt/static/icons/icon-delete.svg b/server/vbv_lernwelt/static/icons/icon-delete.svg new file mode 100644 index 00000000..39ec0664 --- /dev/null +++ b/server/vbv_lernwelt/static/icons/icon-delete.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/server/vbv_lernwelt/static/icons/icon-download.svg b/server/vbv_lernwelt/static/icons/icon-download.svg new file mode 100644 index 00000000..5b63d09a --- /dev/null +++ b/server/vbv_lernwelt/static/icons/icon-download.svg @@ -0,0 +1 @@ + \ No newline at end of file