From 0a83654f60f6d11da95a60560085cc6156eeab18 Mon Sep 17 00:00:00 2001
From: Michael Bauer <michael-bauer@posteo.de>
Date: Wed, 31 Jan 2024 19:19:13 +0100
Subject: [PATCH] Implement saveTopic and wire documentation mutation up

---
 .../documentation/Documentation.vue           | 20 ++++++++++++++-----
 .../documentation/LessonSummary.vue           |  8 ++++++++
 2 files changed, 23 insertions(+), 5 deletions(-)

diff --git a/aleksis/apps/alsijil/frontend/components/documentation/Documentation.vue b/aleksis/apps/alsijil/frontend/components/documentation/Documentation.vue
index eead50e48..5b169d037 100644
--- a/aleksis/apps/alsijil/frontend/components/documentation/Documentation.vue
+++ b/aleksis/apps/alsijil/frontend/components/documentation/Documentation.vue
@@ -1,15 +1,17 @@
 <template>
   <div class="full-width d-flex flex-column flex-md-row align-stretch">
     <lesson-information
-        :documentation="documentation"
+      :documentation="documentation"
     />
     <lesson-summary
-        :documentation="documentation"
-        class="flex-grow-1"
+      class="flex-grow-1"
+      :documentation="documentation"
+      :is-create="false"
+      :gql-patch-mutation="updateDocumentationsMutation"
     />
     <lesson-notes
-        :documentation="documentation"
-        class="flex-grow-1"
+      class="flex-grow-1"
+      :documentation="documentation"
     />
   </div>
 </template>
@@ -19,6 +21,9 @@ import LessonInformation from "./LessonInformation.vue";
 import LessonSummary from "./LessonSummary.vue";
 import LessonNotes from "./LessonNotes.vue";
 
+// or pass from Coursebook?
+import { gqlCreateOrUpdateDocumentations } from "../coursebook.graphql";
+
 export default {
   name: "Documentation",
   components: {
@@ -32,5 +37,10 @@ export default {
       required: true,
     },
   },
+  data() {
+    return {
+      updateDocumentationsMutation: gqlCreateOrUpdateDocumentations,
+    };
+  },
 };
 </script>
diff --git a/aleksis/apps/alsijil/frontend/components/documentation/LessonSummary.vue b/aleksis/apps/alsijil/frontend/components/documentation/LessonSummary.vue
index c4d5a905f..9fe76adb2 100644
--- a/aleksis/apps/alsijil/frontend/components/documentation/LessonSummary.vue
+++ b/aleksis/apps/alsijil/frontend/components/documentation/LessonSummary.vue
@@ -37,8 +37,12 @@
 </template>
 
 <script>
+import createOrPatchMixin from "aleksis.core/mixins/createOrPatchMixin.js";
+// TODO: Update createOrPatchMixin to handle createOrPatch update of cache
+
 export default {
   name: "LessonSummary",
+  mixins: [createOrPatchMixin],
   props: {
     documentation: {
       type: Object,
@@ -57,6 +61,10 @@ export default {
   },
   methods: {
     saveTopic() {
+      this.createOrPatch([{
+        id: this.documentation.id,
+        topic: this.topic,
+      }]);
     },
     truncate(str) {
       return str ?
-- 
GitLab