|
|
@@ -107,7 +107,7 @@
|
|
|
<v-text-field
|
|
|
v-model="trialRequest.address"
|
|
|
:rules="[validateRequired]"
|
|
|
- label="Adresse siège social de la structure*"
|
|
|
+ label="Adresse du siège social de la structure*"
|
|
|
required
|
|
|
/>
|
|
|
</v-col>
|
|
|
@@ -145,7 +145,7 @@
|
|
|
<v-text-field
|
|
|
v-model="trialRequest.structureEmail"
|
|
|
:rules="[validateRequired, validateEmail]"
|
|
|
- label="Adresse mail de la structure*"
|
|
|
+ label="Adresse email de la structure*"
|
|
|
required
|
|
|
type="email"
|
|
|
/>
|
|
|
@@ -227,7 +227,7 @@
|
|
|
<v-text-field
|
|
|
v-model="trialRequest.representativeEmail"
|
|
|
:rules="[validateRequired, validateEmail]"
|
|
|
- label="Adresse mail*"
|
|
|
+ label="Adresse email*"
|
|
|
required
|
|
|
type="email"
|
|
|
/>
|
|
|
@@ -319,6 +319,17 @@
|
|
|
caractère spécial.
|
|
|
</i>
|
|
|
</div>
|
|
|
+ <v-text-field
|
|
|
+ v-model="trialRequest.confirmPassword"
|
|
|
+ :rules="[
|
|
|
+ showPassword ? () => true : validateRequired,
|
|
|
+ showPassword ? () => true : validatePasswordMatch,
|
|
|
+ ]"
|
|
|
+ label="Confirmer le mot de passe*"
|
|
|
+ :required="!showPassword"
|
|
|
+ :disabled="showPassword"
|
|
|
+ :type="showPassword ? 'text' : 'password'"
|
|
|
+ />
|
|
|
</v-col>
|
|
|
</v-row>
|
|
|
|
|
|
@@ -457,6 +468,7 @@ import {
|
|
|
} from '~/services/utils/stringUtils'
|
|
|
|
|
|
const router = useRouter()
|
|
|
+const i18n = useI18n()
|
|
|
|
|
|
const form: Ref<HTMLElement | null> = ref(null)
|
|
|
|
|
|
@@ -503,9 +515,11 @@ const trialRequest = reactive<TrialRequest>({
|
|
|
representativeEmail: '',
|
|
|
representativePhone: '',
|
|
|
password: '',
|
|
|
+ confirmPassword: '',
|
|
|
termsAccepted: false,
|
|
|
legalRepresentative: false,
|
|
|
newsletterSubscription: false,
|
|
|
+ createWebsite: false
|
|
|
})
|
|
|
|
|
|
// Function to fill the form with dummy data
|
|
|
@@ -529,6 +543,7 @@ const fillWithDummyData = () => {
|
|
|
trialRequest.representativeEmail = 'jean.dupont@compagnie-test.fr'
|
|
|
trialRequest.representativePhone = '0612345678'
|
|
|
trialRequest.password = 'Test1234!'
|
|
|
+ trialRequest.confirmPassword = 'Test1234!'
|
|
|
trialRequest.termsAccepted = true
|
|
|
trialRequest.legalRepresentative = true
|
|
|
trialRequest.newsletterSubscription = true
|
|
|
@@ -624,6 +639,15 @@ const validatePassword = (password: string) => {
|
|
|
return true
|
|
|
}
|
|
|
|
|
|
+const validatePasswordMatch = () => {
|
|
|
+ if (!trialRequest.confirmPassword) return 'Ce champ est obligatoire'
|
|
|
+
|
|
|
+ return (
|
|
|
+ trialRequest.password === trialRequest.confirmPassword ||
|
|
|
+ 'Les mots de passe ne correspondent pas'
|
|
|
+ )
|
|
|
+}
|
|
|
+
|
|
|
const validateSubdomain = (value: string) => {
|
|
|
if (!value) return 'Ce champ est obligatoire'
|
|
|
|
|
|
@@ -698,7 +722,7 @@ const submit = async (): Promise<void> => {
|
|
|
|
|
|
// Process the error message using the common error handler
|
|
|
const processedError = processApiError(e)
|
|
|
- errorMsg.value += '\n' + processedError
|
|
|
+ errorMsg.value += '\n' + i18n.t(processedError)
|
|
|
}
|
|
|
}
|
|
|
|