sms.vue 2.0 KB

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