comand-component-library 4.1.54 → 4.1.55
Sign up to get free protection for your applications and to get access to all the features.
@@ -7,6 +7,7 @@
|
|
7
7
|
<!-- begin CmdForm -->
|
8
8
|
<CmdForm
|
9
9
|
@submit="onSubmit"
|
10
|
+
:class="{'send-success': sendSuccessfully}"
|
10
11
|
novalidate="novalidate"
|
11
12
|
v-bind="cmdForm"
|
12
13
|
:legend="legend"
|
@@ -25,7 +26,6 @@
|
|
25
26
|
:replaceInputType="configuration.salutation?.replaceInputType"
|
26
27
|
v-model="formData.salutation.value"
|
27
28
|
:i18n="i18n"
|
28
|
-
@validate="onValidate"
|
29
29
|
/>
|
30
30
|
<!-- end cmd-form-element -->
|
31
31
|
|
@@ -39,7 +39,6 @@
|
|
39
39
|
:replaceInputType="configuration.salutation?.replaceInputType"
|
40
40
|
v-model="formData.salutation.value"
|
41
41
|
:i18n="i18n"
|
42
|
-
@validate="onValidate"
|
43
42
|
/>
|
44
43
|
<!-- end cmd-form-element -->
|
45
44
|
</div>
|
@@ -62,7 +61,7 @@
|
|
62
61
|
v-model="formData.lastName.value"
|
63
62
|
:status="formData.lastName.error ? 'error' : ''"
|
64
63
|
:i18n="i18n"
|
65
|
-
|
64
|
+
:showStatusIcon="false"
|
66
65
|
/>
|
67
66
|
<!-- end cmd-form-element -->
|
68
67
|
|
@@ -79,7 +78,6 @@
|
|
79
78
|
v-model="formData.firstName.value"
|
80
79
|
:status="formData.firstName.error ? 'error' : ''"
|
81
80
|
:i18n="i18n"
|
82
|
-
@validate="onValidate"
|
83
81
|
/>
|
84
82
|
<!-- end cmd-form-element -->
|
85
83
|
</div>
|
@@ -97,7 +95,7 @@
|
|
97
95
|
v-model="formData.email.value"
|
98
96
|
:status="formData.email.error ? 'error' : ''"
|
99
97
|
:i18n="i18n"
|
100
|
-
|
98
|
+
:showStatusIcon="false"
|
101
99
|
/>
|
102
100
|
<!-- end cmd-form-element -->
|
103
101
|
|
@@ -114,7 +112,6 @@
|
|
114
112
|
:name="configuration.phone?.name"
|
115
113
|
:status="formData.phone.error ? 'error' : ''"
|
116
114
|
:i18n="i18n"
|
117
|
-
@validate="onValidate"
|
118
115
|
/>
|
119
116
|
<!-- end cmd-form-element -->
|
120
117
|
</div>
|
@@ -131,7 +128,6 @@
|
|
131
128
|
v-model="formData.country.value"
|
132
129
|
:status="formData.country.error ? 'error' : ''"
|
133
130
|
:i18n="i18n"
|
134
|
-
@validate="onValidate"
|
135
131
|
@update:modelValue="onCountrySelect"
|
136
132
|
/>
|
137
133
|
<!-- end cmd-form-element -->
|
@@ -148,7 +144,6 @@
|
|
148
144
|
v-model="formData.streetNo.value"
|
149
145
|
:status="formData.streetNo.error ? 'error' : ''"
|
150
146
|
:i18n="i18n"
|
151
|
-
@validate="onValidate"
|
152
147
|
/>
|
153
148
|
<!-- end cmd-form-element -->
|
154
149
|
|
@@ -164,7 +159,6 @@
|
|
164
159
|
v-model="formData.pobox.value"
|
165
160
|
:status="formData.pobox.error ? 'error' : ''"
|
166
161
|
:i18n="i18n"
|
167
|
-
@validate="onValidate"
|
168
162
|
/>
|
169
163
|
<!-- end cmd-form-element -->
|
170
164
|
|
@@ -182,7 +176,6 @@
|
|
182
176
|
v-model="formData.zip.value"
|
183
177
|
:status="formData.zip.error ? 'error' : ''"
|
184
178
|
:i18n="i18n"
|
185
|
-
@validate="onValidate"
|
186
179
|
/>
|
187
180
|
<!-- end cmd-form-element -->
|
188
181
|
|
@@ -198,7 +191,6 @@
|
|
198
191
|
v-model="formData.city.value"
|
199
192
|
:status="formData.city.error ? 'error' : ''"
|
200
193
|
:i18n="i18n"
|
201
|
-
@validate="onValidate"
|
202
194
|
/>
|
203
195
|
<!-- end cmd-form-element -->
|
204
196
|
</div>
|
@@ -215,7 +207,6 @@
|
|
215
207
|
v-model="formData.additionalAddressInfo.value"
|
216
208
|
:status="formData.additionalAddressInfo.error ? 'error' : ''"
|
217
209
|
:i18n="i18n"
|
218
|
-
@validate="onValidate"
|
219
210
|
/>
|
220
211
|
<!-- end cmd-form-element -->
|
221
212
|
</div>
|
@@ -233,7 +224,7 @@
|
|
233
224
|
v-model="formData.userMessage.value"
|
234
225
|
:status="formData.userMessage.error ? 'error' : ''"
|
235
226
|
:i18n="i18n"
|
236
|
-
|
227
|
+
:showStatusIcon="false"
|
237
228
|
/>
|
238
229
|
<!-- end cmd-form-element -->
|
239
230
|
|
@@ -252,12 +243,14 @@
|
|
252
243
|
v-model="formData.acceptPrivacy.value"
|
253
244
|
:status="formData.acceptPrivacy.error ? 'error' : ''"
|
254
245
|
:i18n="i18n"
|
255
|
-
|
246
|
+
>
|
256
247
|
<template v-slot:labeltext>
|
257
248
|
<span ref="dataPrivacy" v-html="getMessage('basic_form.labeltext.data_privacy')"></span>
|
258
249
|
</template>
|
259
250
|
</CmdFormElement>
|
260
251
|
<!-- end cmd-form-element -->
|
252
|
+
|
253
|
+
<button class="button" type="button" @click="onSuccess">On Success</button>
|
261
254
|
</CmdForm>
|
262
255
|
<!-- end CmdForm -->
|
263
256
|
</div>
|
@@ -284,6 +277,7 @@ export default {
|
|
284
277
|
},
|
285
278
|
data() {
|
286
279
|
return {
|
280
|
+
sendSuccessfully: false,
|
287
281
|
validator: new ContactFormValidator(label => label),
|
288
282
|
formData: {
|
289
283
|
salutation: {value: this.configuration.salutation.default},
|
@@ -481,9 +475,35 @@ export default {
|
|
481
475
|
}
|
482
476
|
},
|
483
477
|
methods: {
|
478
|
+
onSuccess() {
|
479
|
+
this.sendSuccessfully = true
|
480
|
+
try {
|
481
|
+
// reset global validation-status
|
482
|
+
this.formData.error = false
|
483
|
+
|
484
|
+
for (let key in this.formData) {
|
485
|
+
// reset field-validation-status
|
486
|
+
if(this.formData[key].error) {
|
487
|
+
this.formData[key].error = false
|
488
|
+
}
|
489
|
+
|
490
|
+
// reset field-values
|
491
|
+
if(typeof this.formData[key].value === "string") {
|
492
|
+
if(key === "salutation") {
|
493
|
+
this.formData[key].value = this.configuration.salutation.default
|
494
|
+
} else {
|
495
|
+
this.formData[key].value = ""
|
496
|
+
}
|
497
|
+
} else if(key === "acceptPrivacy") {
|
498
|
+
this.formData[key].value = false
|
499
|
+
}
|
500
|
+
}
|
501
|
+
} catch (error) {
|
502
|
+
console.error(error)
|
503
|
+
}
|
504
|
+
},
|
484
505
|
onSubmit(event) {
|
485
506
|
this.onValidate()
|
486
|
-
|
487
507
|
this.formData = Object.assign({}, this.validator.validatePrivacy(this.formData));
|
488
508
|
|
489
509
|
if (this.formData.error || this.useNativeSubmit) {
|
@@ -523,6 +543,7 @@ export default {
|
|
523
543
|
|
524
544
|
fetch(this.formAction, {method: this.cmdForm?.formMethod || "POST", body: customSubmitFormData}).then((response) => {
|
525
545
|
if(response.ok) {
|
546
|
+
this.sendSuccessfully = true
|
526
547
|
this.$refs.form.showMessage("success", this.getMessage("basic_form.system_message.success.message_sent_successfully"))
|
527
548
|
try {
|
528
549
|
// reset global validation-status
|
@@ -549,6 +570,7 @@ export default {
|
|
549
570
|
console.error(error)
|
550
571
|
}
|
551
572
|
} else {
|
573
|
+
this.sendSuccessfully = false
|
552
574
|
this.$refs.form.showMessage("error", this.getMessage("basic_form.system_message.error.message_could_not_be_sent"))
|
553
575
|
}
|
554
576
|
}).catch((error) => {
|
@@ -257,6 +257,20 @@ export default {
|
|
257
257
|
}
|
258
258
|
}
|
259
259
|
|
260
|
+
/* must be refactored */
|
261
|
+
&.send-success {
|
262
|
+
fieldset {
|
263
|
+
:is(label, .label):is(.error, .success):has(:user-invalid) :is(.label-text :is(span, a[class*="icon-"], a:has([class*="icon-"])), .place-inside[class*="icon-"], input, select, textarea) {
|
264
|
+
--status-color: var(--default-text-color) !important;
|
265
|
+
border-color: var(--default-border-color) !important;
|
266
|
+
}
|
267
|
+
|
268
|
+
sup {
|
269
|
+
--status-color: var(--primary-color) !important;
|
270
|
+
}
|
271
|
+
}
|
272
|
+
}
|
273
|
+
|
260
274
|
legend.align-left {
|
261
275
|
left: 0;
|
262
276
|
right: auto;
|
@@ -11,12 +11,16 @@ class ContactFormValidator {
|
|
11
11
|
}
|
12
12
|
|
13
13
|
validate(formData) {
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
14
|
+
const lastNameValidationResult = this.validateRequired(formData.lastName.value, ContactFormValidator.PATTERN_SURNAME, this.label('form_error_invalid_surname'))
|
15
|
+
const emailValidationResult = this.validateRequired(formData.email.value, ContactFormValidator.PATTERN_EMAIL, this.label('form_error_invalid_email'))
|
16
|
+
const userMessageValidationResult = this.validateRequired(formData.userMessage.value, ContactFormValidator.PATTERN_MESSAGE, this.label('form_error_invalid_message'))
|
17
|
+
formData.lastName.error = lastNameValidationResult[0]
|
18
|
+
formData.lastName.errorMessage = lastNameValidationResult[1]
|
19
|
+
formData.email.error = emailValidationResult[0]
|
20
|
+
formData.email.errorMessage = emailValidationResult[1]
|
21
|
+
formData.userMessage.error = userMessageValidationResult[0]
|
22
|
+
formData.userMessage.errorMessage = userMessageValidationResult[1]
|
23
|
+
console.log("validate", formData.email)
|
20
24
|
formData.acceptPrivacy.error = false
|
21
25
|
formData.error = formData.lastName.error
|
22
26
|
|| formData.email.error
|