attendances.vue 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. <template>
  2. <NuxtLayout name="parameters">
  3. <LayoutContainer>
  4. <UiLoadingPanel v-if="pending" />
  5. <UiForm v-else :model="Parameters" :entity="parameters">
  6. <v-row>
  7. <v-col cols="6">
  8. <UiInputCheckbox
  9. v-model="parameters.sendAttendanceEmail"
  10. field="sendAttendanceEmail"
  11. label="sendAttendanceEmail"
  12. />
  13. <UiInputCheckbox
  14. v-model="parameters.sendAttendanceSms"
  15. field="sendAttendanceSms"
  16. />
  17. <UiInputCheckbox
  18. v-model="parameters.notifyAdministrationAbsence"
  19. field="notifyAdministrationAbsence"
  20. />
  21. </v-col>
  22. </v-row>
  23. </UiForm>
  24. </LayoutContainer>
  25. </NuxtLayout>
  26. </template>
  27. <script setup lang="ts">
  28. import Parameters from '~/models/Organization/Parameters'
  29. import { useEntityFetch } from '~/composables/data/useEntityFetch'
  30. import { useOrganizationProfileStore } from '~/stores/organizationProfile'
  31. import { AsyncData } from '#app'
  32. /**
  33. * Disable the default layout, the page will use the layout defined with <NuxtLayout />
  34. * @see https://nuxt.com/docs/guide/directory-structure/layouts#overriding-a-layout-on-a-per-page-basis
  35. */
  36. definePageMeta({
  37. layout: false,
  38. });
  39. const { fetch } = useEntityFetch()
  40. const organizationProfile = useOrganizationProfileStore()
  41. if (organizationProfile.parametersId === null) {
  42. throw new Error('Missing organization parameters id')
  43. }
  44. const { data: parameters, pending } = fetch(
  45. Parameters,
  46. organizationProfile.parametersId
  47. ) as AsyncData<Parameters, Parameters | true>
  48. </script>