Skip to content
Snippets Groups Projects
Commit 7eff0b73 authored by permcu's avatar permcu
Browse files

Handle loading in absence-creation-dialog

parent f5b6ff77
No related branches found
No related tags found
1 merge request!356Add dialog for creation of long-term absences
...@@ -41,6 +41,7 @@ ...@@ -41,6 +41,7 @@
:persons="persons" :persons="persons"
:start-date="startDate" :start-date="startDate"
:end-date="endDate" :end-date="endDate"
@loading="handleLoading"
/> />
</template> </template>
<template #actions> <template #actions>
...@@ -74,6 +75,7 @@ import AbsenceCreationSummary from "./AbsenceCreationSummary.vue"; ...@@ -74,6 +75,7 @@ import AbsenceCreationSummary from "./AbsenceCreationSummary.vue";
import CreateButton from "aleksis.core/components/generic/buttons/CreateButton.vue"; import CreateButton from "aleksis.core/components/generic/buttons/CreateButton.vue";
import CancelButton from "aleksis.core/components/generic/buttons/CancelButton.vue"; import CancelButton from "aleksis.core/components/generic/buttons/CancelButton.vue";
import SaveButton from "aleksis.core/components/generic/buttons/SaveButton.vue"; import SaveButton from "aleksis.core/components/generic/buttons/SaveButton.vue";
import loadingMixin from "aleksis.core/mixins/loadingMixin.js";
import { createAbsences } from "./absenceCreation.graphql"; import { createAbsences } from "./absenceCreation.graphql";
export default { export default {
...@@ -86,11 +88,11 @@ export default { ...@@ -86,11 +88,11 @@ export default {
CancelButton, CancelButton,
SaveButton, SaveButton,
}, },
mixins: [loadingMixin],
data() { data() {
return { return {
popup: false, popup: false,
form: true, form: true,
loading: false,
// TODO: All needed? Check if sensible defaults. // TODO: All needed? Check if sensible defaults.
persons: [], persons: [],
startDate: "", startDate: "",
...@@ -105,6 +107,7 @@ export default { ...@@ -105,6 +107,7 @@ export default {
this.form = true; this.form = true;
}, },
confirm() { confirm() {
this.handleLoading(true);
this.$apollo.mutate( { this.$apollo.mutate( {
mutation: createAbsences, mutation: createAbsences,
variables: { variables: {
...@@ -127,8 +130,10 @@ export default { ...@@ -127,8 +130,10 @@ export default {
.catch((error) => { .catch((error) => {
popup = false; popup = false;
this.handleError(error); this.handleError(error);
})
.finally(() => {
this.handleLoading(false);
}); });
// finally for loading
}, },
}, },
}; };
......
...@@ -11,7 +11,8 @@ ...@@ -11,7 +11,8 @@
:elevated="false" :elevated="false"
disable-pagination disable-pagination
hide-default-footer hide-default-footer
> @loading="handleLoading"
>
<template #default="{ items }"> <template #default="{ items }">
<v-expansion-panels> <v-expansion-panels>
<v-expansion-panel <v-expansion-panel
...@@ -67,6 +68,7 @@ import CRUDIterator from "aleksis.core/components/generic/CRUDIterator.vue"; ...@@ -67,6 +68,7 @@ import CRUDIterator from "aleksis.core/components/generic/CRUDIterator.vue";
import SubjectChip from "aleksis.apps.cursus/components/SubjectChip.vue"; import SubjectChip from "aleksis.apps.cursus/components/SubjectChip.vue";
import { lessonsForPersons } from "./absenceCreation.graphql"; import { lessonsForPersons } from "./absenceCreation.graphql";
import { DateTime } from "luxon"; import { DateTime } from "luxon";
import loadingMixin from "aleksis.core/mixins/loadingMixin.js";
export default { export default {
name: "AbsenceCreationSummary", name: "AbsenceCreationSummary",
...@@ -74,6 +76,7 @@ export default { ...@@ -74,6 +76,7 @@ export default {
CRUDIterator, CRUDIterator,
SubjectChip, SubjectChip,
}, },
mixins: [loadingMixin],
props: { props: {
persons: { persons: {
type: Array, type: Array,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment