| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- <template>
- <div>
- <LayoutParametersSection>
- <UiForm v-if="parameters" v-model="parameters">
- <v-row>
- <v-col cols="12">
- <UiInputText
- v-model="parameters.smsSenderName"
- readonly
- field="smsSenderName"
- :rules="rules()"
- class="readonly"
- />
- </v-col>
- <v-col cols="12">
- <UiInputText
- v-model="parameters.usernameSMS"
- field="usernameSMS"
- />
- </v-col>
- <v-col cols="12">
- <UiInputText
- v-model="parameters.passwordSMS"
- field="passwordSMS"
- class="password"
- />
- </v-col>
- </v-row>
- </UiForm>
- </LayoutParametersSection>
- </div>
- </template>
- <script setup lang="ts">
- import type { AsyncData } from '#app'
- import Parameters from '~/models/Organization/Parameters'
- import { useEntityFetch } from '~/composables/data/useEntityFetch'
- import { useOrganizationProfileStore } from '~/stores/organizationProfile'
- definePageMeta({
- name: 'parameters_sms_page',
- })
- const i18n = useI18n()
- const { fetch } = useEntityFetch()
- const organizationProfile = useOrganizationProfileStore()
- if (organizationProfile.parametersId === null) {
- throw new Error('Missing organization parameters id')
- }
- const { data: parameters } = fetch(
- Parameters,
- organizationProfile.parametersId,
- ) as AsyncData<Parameters | null, Error | null>
- /**
- * Règles de validation
- */
- const rules = () => [
- (smsSenderName: string | null) =>
- (smsSenderName !== null && /^\w{3,11}$/.test(smsSenderName)) ||
- i18n.t('please_enter_a_value_for_the_sms_sender_name'),
- ]
- </script>
- <style scoped lang="scss">
- .readonly {
- color: rgb(var(--v-theme-on-surface));
- :deep(.v-field--disabled), :deep(.v-field__input) {
- opacity: 1;
- }
- }
- /**
- Simule une apparence de saisie de type mot de passe
- Sans ça, les navigateurs proposent la saisie semi auto et la mémorisation du mot de passe
- */
- @font-face {
- font-family: 'password';
- font-style: normal;
- font-weight: 400;
- font-display: block;
- src: url(https://jsbin-user-assets.s3.amazonaws.com/rafaelcastrocouto/password.ttf);
- }
- :deep(.password input) {
- font-family: 'password';
- }
- </style>
|