| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- <!-- Component d'un formulaire pour la saisie d'un nouveau subdomain -->
- <template>
- <main>
- <LayoutContainer>
- <v-card class="mb-5 mt-4">
- <FormToolbar title="subdomain" icon="fa-at"/>
- <UiForm
- :id="id"
- :model="model"
- :query="query()"
- :submitActions="submitActions">
- <template #form.input="{entry, updateRepository}">
- <v-container fluid class="container">
- <v-row>
- <v-col cols="12" sm="6">
- <div>{{ $t('pleaseEnterYourNewSubdomain')}} :</div>
- </v-col>
- </v-row>
- <v-row>
- <v-col cols="12" sm="6">
- <UiInputText
- field="subdomain"
- label="subdomain"
- :data="entry['subdomain']"
- @update="updateRepository"
- type="string"
- :rules="rules().subdomainRules"
- />
- </v-col>
- </v-row>
- </v-container>
- </template>
- <template #form.button>
- <NuxtLink :to="{ path: '/parameters/communication'}" class="no-decoration">
- <v-btn class="mr-4 ot_light_grey ot_grey--text">
- {{ $t('back') }}
- </v-btn>
- </NuxtLink>
- </template>
- </UiForm>
- </v-card>
- </LayoutContainer>
- </main>
- </template>
- <script lang="ts">
- import {defineComponent, computed, useContext} from '@nuxtjs/composition-api'
- import { Repository as VuexRepository } from '@vuex-orm/core/dist/src/repository/Repository'
- import { Query, Model } from '@vuex-orm/core'
- import { SUBMIT_TYPE} from '~/types/enums'
- import { repositoryHelper } from '~/services/store/repository'
- import {AnyJson} from "~/types/interfaces";
- import {Subdomain} from "~/models/Organization/Subdomain";
- export default defineComponent({
- props: {
- id:{
- type: [Number, String],
- required: true
- }
- },
- setup () {
- const {app:{i18n}} = useContext()
- const repository: VuexRepository<Model> = repositoryHelper.getRepository(Subdomain)
- const query: Query = repository.query()
- const submitActions = computed(() => {
- let actions:AnyJson = {}
- actions[SUBMIT_TYPE.SAVE_AND_BACK] = { path: `/parameters/communication` }
- return actions
- })
- /** todo Computed properties needs to be returned as functions until nuxt3 : https://github.com/nuxt-community/composition-api/issues/207 **/
- return {
- model: Subdomain,
- query: () => query,
- rules: () => getRules(i18n),
- panel: 0,
- submitActions
- }
- },
- beforeDestroy() {
- repositoryHelper.cleanRepository(Subdomain)
- }
- })
- function getRules (i18n: any) {
- return {
- subdomainRules: [
- (subdomain: string) => (subdomain?.length <= 60) || i18n.t('subdomain_need_to_have_less_than_60_cars'),
- (subdomain: string) => (true) || i18n.t('this_subdomain_is_already_used'),
- ]
- }
- }
- </script>
|