PreferencesTab.vue 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. <template>
  2. <LayoutContainer>
  3. <v-col cols="12" sm="12" md="12">
  4. <UiLoadingPanel v-if="pending" />
  5. <UiForm
  6. v-else-if="parameters !== null"
  7. :model="Parameters"
  8. :entity="parameters"
  9. >
  10. <v-expansion-panels :multiple="true" v-model="openedPanels">
  11. <UiExpansionPanel title="general_parameters" icon="fas fa-info">
  12. <LayoutParametersPreferencesTabGeneralParameters :parameters="parameters" />
  13. </UiExpansionPanel>
  14. <UiExpansionPanel title="website" icon="fas fa-info">
  15. <LayoutParametersPreferencesTabWebsite :parameters="parameters" />
  16. </UiExpansionPanel>
  17. <UiExpansionPanel title="teaching" icon="fas fa-info">
  18. </UiExpansionPanel>
  19. <UiExpansionPanel title="intranet_access" icon="fas fa-info">
  20. </UiExpansionPanel>
  21. <UiExpansionPanel title="educationNotations" icon="fas fa-info">
  22. </UiExpansionPanel>
  23. <UiExpansionPanel title="bulletin" icon="fas fa-info">
  24. </UiExpansionPanel>
  25. <UiExpansionPanel title="educationTimings" icon="fas fa-info">
  26. </UiExpansionPanel>
  27. <UiExpansionPanel title="attendances" icon="fas fa-info">
  28. </UiExpansionPanel>
  29. <UiExpansionPanel title="residenceAreas" icon="fas fa-info">
  30. </UiExpansionPanel>
  31. <UiExpansionPanel title="sms_option" icon="fas fa-info">
  32. </UiExpansionPanel>
  33. <UiExpansionPanel title="super_admin" icon="fas fa-info">
  34. </UiExpansionPanel>
  35. </v-expansion-panels>
  36. </UiForm>
  37. <span v-else>
  38. {{ $t('an_error_happened') }}
  39. </span>
  40. </v-col>
  41. </LayoutContainer>
  42. </template>
  43. <script setup lang="ts">
  44. // On déplie les expansion panels dans le onMounted en attendant la résolution du bug : https://github.com/vuetifyjs/vuetify/issues/16427#issuecomment-1380927133
  45. // TODO: quand le bug ci dessus est résolu, remplacer par `const openedPanels: Ref<Array<string>> = ref(['informations', 'bills', 'more_features'])`
  46. import {Ref} from "@vue/reactivity";
  47. import {useEntityFetch} from "~/composables/data/useEntityFetch";
  48. import {useOrganizationProfileStore} from "~/stores/organizationProfile";
  49. import Parameters from "~/models/Organization/Parameters";
  50. import {AsyncData} from "#app";
  51. import ApiResource from "~/models/ApiResource";
  52. const openedPanels: Ref<Array<string>> = ref([])
  53. onMounted(() => {
  54. openedPanels.value = [
  55. 'general_parameters',
  56. 'website',
  57. 'teaching',
  58. 'intranet_access',
  59. 'educationNotations',
  60. 'bulletin',
  61. 'educationTimings',
  62. 'attendances',
  63. 'residenceAreas',
  64. 'sms_option',
  65. 'super_admin',
  66. ]
  67. })
  68. const { fetch } = useEntityFetch()
  69. const organizationProfile = useOrganizationProfileStore()
  70. if (organizationProfile.parametersId === null) {
  71. throw new Error('Missing organization parameters id')
  72. }
  73. const { data: parameters, pending } = fetch(Parameters, organizationProfile.parametersId) as AsyncData<Parameters, Parameters | true>
  74. </script>
  75. <style scoped lang="scss">
  76. </style>