_id.vue 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <!-- Page de détails d'un sous-domaine -->
  2. <template>
  3. <main>
  4. <LayoutContainer>
  5. <v-card class="mb-5 mt-4">
  6. <FormToolbar title="subdomain" icon="fa-at"/>
  7. <v-container fluid class="container pa-6">
  8. <v-row>
  9. <v-col cols="12" sm="12">
  10. <v-skeleton-loader
  11. v-if="fetchState.pending"
  12. type="text"
  13. />
  14. <div v-else>
  15. <div>
  16. {{ $t('youRegisteredTheFollowingSubdomain')}} :
  17. </div>
  18. <div class="pa-8">
  19. <b>{{ entry.subdomain }}</b> <span class="grey--text">.opentalent.fr</span>
  20. </div>
  21. <div>
  22. <div v-if="entry.active">
  23. <v-icon class="ot_green--text icon small mr-2">
  24. fa-solid fa-check
  25. </v-icon>
  26. {{ $t('subdomainIsCurrentlyActive') }}
  27. </div>
  28. <div v-else>
  29. {{ $t('doYouWantToActivateThisSubdomain') }} ?
  30. </div>
  31. </div>
  32. <div class="mt-6 d-flex flex-row">
  33. <v-btn to="/parameters/communication" class="mr-12">{{ $t('back') }}</v-btn>
  34. <div v-if="!entry.active">
  35. <v-btn color="primary" @click="activateAndQuit">{{ $t('activate') }}</v-btn>
  36. </div>
  37. </div>
  38. </div>
  39. </v-col>
  40. </v-row>
  41. </v-container>
  42. </v-card>
  43. </LayoutContainer>
  44. </main>
  45. </template>
  46. <script lang="ts">
  47. import {computed, ComputedRef, defineComponent, useContext} from '@nuxtjs/composition-api'
  48. import {useDataUtils} from "~/composables/data/useDataUtils";
  49. import {Subdomain} from "~/models/Organization/Subdomain";
  50. import {Repository as VuexRepository} from "@vuex-orm/core/dist/src/repository/Repository";
  51. import {Model, Query} from "@vuex-orm/core";
  52. import {repositoryHelper} from "~/services/store/repository";
  53. import {AnyJson} from "~/types/interfaces";
  54. import {queryHelper} from "~/services/store/query";
  55. export default defineComponent({
  56. name: 'EditFormParametersSubdomain',
  57. setup () {
  58. const {$dataProvider, route, app: { $router }} = useContext()
  59. const {getItemToEdit} = useDataUtils($dataProvider)
  60. const id = parseInt(route.value.params.id)
  61. const {fetchState} = getItemToEdit(id, Subdomain)
  62. const repository: VuexRepository<Model> = repositoryHelper.getRepository(Subdomain)
  63. const query: Query = repository.query()
  64. const entry: ComputedRef<AnyJson> = computed(() => {
  65. return queryHelper.getFlattenEntry(query, id)
  66. })
  67. const activateAndQuit = function() {
  68. repositoryHelper.updateStoreFromField(Subdomain, entry.value, '1', 'active')
  69. $router.push('/parameters/communication')
  70. }
  71. return {
  72. id,
  73. fetchState,
  74. entry,
  75. activateAndQuit: () => activateAndQuit()
  76. }
  77. }
  78. })
  79. </script>