sms.vue 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <template>
  2. <div>
  3. <LayoutParametersSection>
  4. <UiForm v-if="parameters" v-model="parameters">
  5. <v-row>
  6. <v-col cols="12">
  7. <UiInputText
  8. v-model="parameters.usernameSMS"
  9. field="usernameSMS"
  10. />
  11. </v-col>
  12. <v-col cols="12">
  13. <UiInputText
  14. v-model="parameters.passwordSMS"
  15. field="passwordSMS"
  16. class="password"
  17. />
  18. </v-col>
  19. <v-col cols="12">
  20. <div class="mb-3">
  21. {{ $t('smsSenderName') }} : <b>{{ parameters.smsSenderName }}</b>
  22. </div>
  23. </v-col>
  24. </v-row>
  25. </UiForm>
  26. </LayoutParametersSection>
  27. </div>
  28. </template>
  29. <script setup lang="ts">
  30. import type { AsyncData } from '#app'
  31. import Parameters from '~/models/Organization/Parameters'
  32. import { useEntityFetch } from '~/composables/data/useEntityFetch'
  33. import { useOrganizationProfileStore } from '~/stores/organizationProfile'
  34. definePageMeta({
  35. name: 'parameters_sms_page',
  36. })
  37. const i18n = useI18n()
  38. const { fetch } = useEntityFetch()
  39. const organizationProfile = useOrganizationProfileStore()
  40. if (organizationProfile.parametersId === null) {
  41. throw new Error('Missing organization parameters id')
  42. }
  43. const { data: parameters } = fetch(
  44. Parameters,
  45. organizationProfile.parametersId,
  46. ) as AsyncData<Parameters | null, Error | null>
  47. /**
  48. * Règles de validation
  49. */
  50. const rules = () => [
  51. (smsSenderName: string | null) =>
  52. (smsSenderName !== null && /^\w{3,11}$/.test(smsSenderName)) ||
  53. i18n.t('please_enter_a_value_for_the_sms_sender_name'),
  54. ]
  55. </script>
  56. <style scoped lang="scss">
  57. /**
  58. Simule une apparence de saisie de type mot de passe
  59. Sans ça, les navigateurs proposent la saisie semi auto et la mémorisation du mot de passe
  60. */
  61. @font-face {
  62. font-family: 'password';
  63. font-style: normal;
  64. font-weight: 400;
  65. font-display: block;
  66. src: url(https://jsbin-user-assets.s3.amazonaws.com/rafaelcastrocouto/password.ttf);
  67. }
  68. :deep(.password input) {
  69. font-family: 'password';
  70. }
  71. </style>