From dadc3281e7211bbd2eb8255693f5f1b3840b3b70 Mon Sep 17 00:00:00 2001
From: Jonathan Weth <git@jonathanweth.de>
Date: Sun, 30 Jun 2024 12:32:45 +0200
Subject: [PATCH] Use form rules from Core for AbsenceCreationForm

---
 .../absences/AbsenceCreationForm.vue          | 19 ++++++++++---------
 1 file changed, 10 insertions(+), 9 deletions(-)

diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/absences/AbsenceCreationForm.vue b/aleksis/apps/alsijil/frontend/components/coursebook/absences/AbsenceCreationForm.vue
index 897a1f1aa..559824bdf 100644
--- a/aleksis/apps/alsijil/frontend/components/coursebook/absences/AbsenceCreationForm.vue
+++ b/aleksis/apps/alsijil/frontend/components/coursebook/absences/AbsenceCreationForm.vue
@@ -12,7 +12,11 @@
             multiple
             chips
             deletable-chips
-            :rules="rules"
+            :rules="
+              $rules().build([
+                (value) => value.length > 0 || $t('forms.errors.required'),
+              ])
+            "
             :value="persons"
             :loading="$apollo.queries.allPersons.loading"
             @input="$emit('persons', $event)"
@@ -25,7 +29,7 @@
             <date-field
               :label="$t('forms.labels.start')"
               :max="endDate"
-              :rules="rules"
+              :rules="$rules().required.build()"
               :value="startDate"
               @input="$emit('start-date', $event)"
             />
@@ -36,7 +40,7 @@
             <date-field
               :label="$t('forms.labels.end')"
               :min="startDate"
-              :rules="rules"
+              :rules="$rules().required.build()"
               :value="endDate"
               @input="$emit('end-date', $event)"
             />
@@ -53,7 +57,7 @@
       <v-row>
         <div aria-required="true">
           <absence-reason-group-select
-            :rules="rules"
+            :rules="$rules().required.build()"
             :value="absenceReason"
             @input="$emit('absence-reason', $event)"
           />
@@ -67,6 +71,7 @@
 import AbsenceReasonGroupSelect from "aleksis.apps.kolego/components/AbsenceReasonGroupSelect.vue";
 import DateField from "aleksis.core/components/generic/forms/DateField.vue";
 import { persons } from "./absenceCreation.graphql";
+import formRulesMixin from "aleksis.core/mixins/formRulesMixin.js";
 
 export default {
   name: "AbsenceCreationForm",
@@ -74,6 +79,7 @@ export default {
     AbsenceReasonGroupSelect,
     DateField,
   },
+  mixins: [formRulesMixin],
   emits: [
     "valid",
     "persons",
@@ -107,10 +113,5 @@ export default {
       required: true,
     },
   },
-  data() {
-    return {
-      rules: [(value) => value.length > 0],
-    };
-  },
 };
 </script>
-- 
GitLab