Website.vue 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. <template>
  2. <LayoutContainer>
  3. <UiLoadingPanel v-if="pending" />
  4. <UiForm
  5. v-else
  6. :model="Parameters"
  7. :entity="parameters"
  8. >
  9. <v-row>
  10. <v-col cols="6">
  11. <div class="mb-6">
  12. <div>{{ $t('your_opentalent_website_address_is')}} : </div>
  13. <div class="ma-2 text-primary"><strong>{{ organizationProfile.website }}</strong></div>
  14. </div>
  15. <div class="mb-6">
  16. <div>{{ $t('subdomains_history') }} : </div>
  17. <UiLoadingPanel v-if="subdomainsPending" />
  18. <v-list
  19. v-else
  20. :items="subdomains.items"
  21. item-value="id"
  22. item-title="subdomain"
  23. density="compact"
  24. bg-color="transparent"
  25. >
  26. <template #prepend>
  27. <v-icon icon="fas fa-circle" style="font-size: 5px;"/>
  28. </template>
  29. </v-list>
  30. </div>
  31. <v-btn
  32. :disabled="!canAddNewSubdomain"
  33. class="my-2"
  34. @click="onAddSubdomainClick"
  35. >
  36. {{ $t('record_a_new_subdomain')}}
  37. </v-btn>
  38. </v-col>
  39. <v-col cols="6">
  40. <!-- les publicationDirectors sont des entités Access -->
  41. <UiInputAutocomplete
  42. field="publicationDirectors"
  43. itemTitle="person.name"
  44. />
  45. <UiInputCheckbox
  46. v-model="parameters.desactivateOpentalentSiteWeb"
  47. field="desactivateOpentalentSiteWeb"
  48. />
  49. <UiInputText
  50. v-model="parameters.otherWebsite"
  51. field="otherWebsite"
  52. />
  53. </v-col>
  54. </v-row>
  55. </UiForm>
  56. </LayoutContainer>
  57. </template>
  58. <script setup lang="ts">
  59. import {useOrganizationProfileStore} from "~/stores/organizationProfile";
  60. import Parameters from "~/models/Organization/Parameters";
  61. import {useEntityFetch} from "~/composables/data/useEntityFetch";
  62. import {AsyncData} from "#app";
  63. import Subdomain from "~/models/Organization/Subdomain";
  64. import ApiResource from "~/models/ApiResource";
  65. const { fetch, fetchCollection } = useEntityFetch()
  66. const organizationProfile = useOrganizationProfileStore()
  67. if (organizationProfile.parametersId === null) {
  68. throw new Error('Missing organization parameters id')
  69. }
  70. const { data: parameters, pending } = fetch(Parameters, organizationProfile.parametersId) as AsyncData<Parameters, Parameters | true>
  71. const { data: subdomains, pending: subdomainsPending } = fetchCollection(Subdomain, null, ref({ 'organization' : organizationProfile.id }) )
  72. const canAddNewSubdomain: ComputedRef<boolean> = computed(() => subdomains.value.items.length < 3)
  73. const onAddSubdomainClick = () => {
  74. if (!canAddNewSubdomain) {
  75. throw new Error('Max number of subdomains reached')
  76. }
  77. }
  78. </script>
  79. <style scoped lang="scss">
  80. </style>