diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/absences/AbsenceCreationForm.vue b/aleksis/apps/alsijil/frontend/components/coursebook/absences/AbsenceCreationForm.vue index b8a42945e84b20b9376f27279cfb87e45f7806de..1dd08a14ac5a5397488dc8786855ed91d3f9fbe9 100644 --- a/aleksis/apps/alsijil/frontend/components/coursebook/absences/AbsenceCreationForm.vue +++ b/aleksis/apps/alsijil/frontend/components/coursebook/absences/AbsenceCreationForm.vue @@ -1,50 +1,82 @@ <template> <v-container> <v-row> - <!-- persons --> - <!-- v-autocomplete --> + <v-autocomplete + :label="$t('forms.labels.persons')" + :items="allPersons" + item-text="fullName" + item-value="id" + multiple + @input="persons = $event" + /> </v-row> + <!-- TODO: No outer padding. --> <v-row> - <!-- Start --> <v-col cols="12" :sm="6" > <date-field - :value="value" - @input="$emit('input', $event)" - :label="$t('date_select.label')" + :label="$t('forms.labels.start')" :disabled="loading" + :max="endDate" + @input="startDate = $event" /> </v-col> - <!-- End --> <v-col cols="12" :sm="6" > <date-field - :value="value" - @input="$emit('input', $event)" - :label="$t('date_select.label')" + :label="$t('forms.labels.end')" :disabled="loading" + :min="startDate" + @input="endDate = $event" /> </v-col> </v-row> <v-row> - <!-- comment --> + <v-text-field + :label="$t('forms.labels.comment')" + :loading="loading" + @input="comment = $event" + /> </v-row> <v-row> - <!-- TODO: Component from Julian --> + <absence-reason-group-select + @input="absenceReason = $event" + /> </v-row> </v-container> </template> <script> +import AbsenceReasonGroupSelect from "aleksis.apps.kolego/components/AbsenceReasonGroupSelect.vue"; import DateField from "aleksis.core/components/generic/forms/DateField.vue"; +import { persons } from "./absenceCreation.graphql" + export default { name: "AbsenceCreationForm", components: { + AbsenceReasonGroupSelect, DateField, }, + apollo: { + // TODO: Query currently returns all persons. But should return + // only persons the current user can create ParticipationStati and + // KolegoAbsences for! + allPersons: persons, + }, + data() { + return { + // TODO: All needed? Check if sensible defaults. + loading: false, + persons: [], + startDate: "", + endDate: "", + comment: "", + absenceReason: null, + }; + }, }; </script> diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/absences/absenceCreation.graphql b/aleksis/apps/alsijil/frontend/components/coursebook/absences/absenceCreation.graphql index 79178bfd835e5c6dbe726d53d6e00b11c7c8f61f..459fa38565a7027d55a03cb10160d8648ce7e4e4 100644 --- a/aleksis/apps/alsijil/frontend/components/coursebook/absences/absenceCreation.graphql +++ b/aleksis/apps/alsijil/frontend/components/coursebook/absences/absenceCreation.graphql @@ -1,9 +1,8 @@ # Uses core persons query query persons { - persons: persons { + allPersons: persons { id - firstName - lastName + fullName } }