+
- {{ $t("circlePage.documents.userDescription") }}
+
+ {{ $t("circlePage.documents.userDescription") }}
+
+
+ {{ $t("circlePage.documents.expertDescription") }}
+
-
- -
-
{{ learningSequence.title }}
-
-
-
+
+
+
-
- {{ $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