From 19f30750089a91c2d1ac5b52b40fd5c43b8aceb5 Mon Sep 17 00:00:00 2001
From: Michael Bauer <michael-bauer@posteo.de>
Date: Thu, 13 Jun 2024 18:07:01 +0200
Subject: [PATCH] Implement mutation in absence-creation-dialog

---
 .../absences/AbsenceCreationDialog.vue        | 28 +++++++++++++++++--
 1 file changed, 25 insertions(+), 3 deletions(-)

diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/absences/AbsenceCreationDialog.vue b/aleksis/apps/alsijil/frontend/components/coursebook/absences/AbsenceCreationDialog.vue
index 7d36f94f7..eeaf604df 100644
--- a/aleksis/apps/alsijil/frontend/components/coursebook/absences/AbsenceCreationDialog.vue
+++ b/aleksis/apps/alsijil/frontend/components/coursebook/absences/AbsenceCreationDialog.vue
@@ -69,6 +69,7 @@ import AbsenceCreationSummary from "./AbsenceCreationSummary.vue";
 import CreateButton from "aleksis.core/components/generic/buttons/CreateButton.vue";
 import CancelButton from "aleksis.core/components/generic/buttons/CancelButton.vue";
 import SaveButton from "aleksis.core/components/generic/buttons/SaveButton.vue";
+import { createAbsences } from "./absenceCreation.graphql";
 
 export default {
   name: "AbsenceCreationDialog",
@@ -99,9 +100,30 @@ export default {
       this.form = true;
     },
     confirm() {
-      // TODO: Send mutation (shown in absence-creation-summary)
-      //       Clear form fields
-      popup = false;
+      this.$apollo.mutate( {
+        mutation: createAbsences,
+        variables: {
+          persons: this.persons.map((p) => p.id),
+          start: this.startDate,
+          end: this.endDate,
+          comment: this.comment,
+          reason: this.absenceReason,
+        },
+      })
+        .then(() => {
+          this.persons = [];
+          this.startDate = "";
+          this.endDate = "";
+          this.comment = "";
+          this.absenceReason = "";
+          this.popup = false;
+          //          $toastSuccess("TODO");
+        })
+        .catch((error) => {
+          popup = false;
+          this.handleError(error);
+        });
+      // finally for loading
     },
   },
 };
-- 
GitLab