| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- <!-- Liste des sous-domaines -->
- <template>
- <main>
- <LayoutContainer>
- <v-container class="container">
- <div>
- <span>{{ $t('yourSubdomains') }} : </span>
- </div>
- <v-skeleton-loader
- v-if="fetchState.pending"
- type="image"
- />
- <div v-else>
- <v-simple-table class="my-2">
- <template v-slot:default>
- <tbody>
- <tr
- v-for="subdomain in subdomains"
- :key="subdomain.id"
- class="subdomainItem"
- @click="goToEditPage(subdomain.id)"
- >
- <td>{{ subdomain.subdomain }}</td>
- <td>
- <span v-if="subdomain.active">
- <v-icon class="ot_green--text icon">
- fa-solid fa-check
- </v-icon> {{ $t('active') }}
- </span>
- </td>
- </tr>
- </tbody>
- </template>
- </v-simple-table>
- <v-btn
- v-if="subdomains.length < 3"
- class="ot_white--text ot_green float-left"
- >
- <NuxtLink to="/parameters/subdomain/new" class="no-decoration">
- <v-icon class="mr-1">fa-plus-circle</v-icon>
- <span>{{$t('add')}}</span>
- </NuxtLink>
- </v-btn>
- </div>
- </v-container>
- </LayoutContainer>
- </main>
- </template>
- <script lang="ts">
- import {computed, ComputedRef, defineComponent, ref, Ref, useContext, useRouter} from '@nuxtjs/composition-api'
- import { Repository as VuexRepository } from '@vuex-orm/core/dist/src/repository/Repository'
- import {Model, Query} from '@vuex-orm/core'
- import { repositoryHelper } from '~/services/store/repository'
- import {Subdomain} from "~/models/Organization/Subdomain";
- import {useDataUtils} from "~/composables/data/useDataUtils";
- import {Collection} from "@vuex-orm/core/dist/src/data/Data";
- import {queryHelper} from "~/services/store/query";
- import { Parameters } from '~/models/Organization/Parameters';
- export default defineComponent({
- props: {
- parametersId: {
- type: [Number, String],
- required: true
- }
- },
- setup (props) {
- const parametersId: Ref<number> = ref(parseInt(props.parametersId as string))
- const { $dataProvider } = useContext()
- const { getCollection } = useDataUtils($dataProvider)
- const router = useRouter();
- const { fetchState } = getCollection(Subdomain, Parameters, parametersId.value)
- const repository: VuexRepository<Model> = repositoryHelper.getRepository(Subdomain)
- const query: ComputedRef<Query> = computed(() => repository.query())
- const subdomains: ComputedRef<Collection> = computed(() => queryHelper.getCollection(query.value))
- const goToEditPage = function(id: number) {
- router.push('/parameters/subdomain/' + id)
- }
- return {
- subdomains,
- fetchState,
- goToEditPage
- }
- },
- beforeDestroy() {
- repositoryHelper.cleanRepository(Subdomain)
- }
- })
- </script>
- <style scoped>
- .subdomainItem {
- cursor: pointer;
- }
- .subdomainItem .icon {
- font-size: 12px;
- }
- </style>
|