86 lines
3.5 KiB
JavaScript
86 lines
3.5 KiB
JavaScript
import '@vuexy-admin/notifications/LivewireNotification.js';
|
|
import FormCustomListener from '@vuexy-admin/forms/formCustomListener';
|
|
import registerLivewireHookOnce from '@vuexy-admin/livewire/registerLivewireHookOnce';
|
|
|
|
// Inicializar formularios de ajustes de Formularios de contacto
|
|
window.ContactFormSettingsForm = new FormCustomListener({
|
|
formSelector: '#website-contact-form-settings-card',
|
|
buttonSelectors: ['.btn-save', '.btn-cancel'],
|
|
callbacks: [() => {}],
|
|
dispatchOnSubmit: 'save',
|
|
validationConfig: {
|
|
fields: {
|
|
// Validación para correo electrónico de recepción
|
|
to_email: {
|
|
validators: {
|
|
emailAddress: {
|
|
message: 'Por favor, introduce un correo electrónico válido.'
|
|
},
|
|
notEmpty: {
|
|
message: 'El correo electrónico es obligatorio.'
|
|
}
|
|
}
|
|
},
|
|
// Validación para correo electrónico con copia
|
|
to_email_cc: {
|
|
validators: {
|
|
emailAddress: {
|
|
message: 'Por favor, introduce un correo electrónico válido.'
|
|
},
|
|
// Validación personalizada para comparar ambos correos electrónicos
|
|
callback: {
|
|
message: 'Los correos electrónicos deben ser diferentes.',
|
|
callback: function (input) {
|
|
const email = document.querySelector('[name="to_email"]').value.trim();
|
|
const emailCC = input.value.trim();
|
|
|
|
// Si ambos correos son iguales, la validación falla
|
|
if (email === emailCC) {
|
|
return false; // Los correos son iguales, por lo que la validación falla
|
|
}
|
|
|
|
return true; // Si son diferentes, la validación pasa
|
|
}
|
|
}
|
|
}
|
|
},
|
|
// Validación para el asunto del formulario de contacto
|
|
subject: {
|
|
validators: {
|
|
stringLength: {
|
|
max: 60,
|
|
message: 'El título del correo no puede exceder los 60 caracteres.'
|
|
},
|
|
notEmpty: {
|
|
message: 'El título del correo es obligatorio.'
|
|
}
|
|
}
|
|
},
|
|
// Validación para el mensaje de envío
|
|
submit_message: {
|
|
validators: {
|
|
stringLength: {
|
|
max: 250,
|
|
message: 'El mensaje no puede exceder los 250 caracteres.'
|
|
},
|
|
notEmpty: {
|
|
message: 'El mensaje de envío es obligatorio.'
|
|
}
|
|
}
|
|
}
|
|
},
|
|
plugins: {
|
|
trigger: new FormValidation.plugins.Trigger(),
|
|
bootstrap5: new FormValidation.plugins.Bootstrap5({
|
|
eleValidClass: '',
|
|
rowSelector: '.fv-row'
|
|
}),
|
|
submitButton: new FormValidation.plugins.SubmitButton(),
|
|
autoFocus: new FormValidation.plugins.AutoFocus()
|
|
}
|
|
}
|
|
});
|
|
|
|
registerLivewireHookOnce('morphed', 'vuexy-website-admin::contact-form-settings', (component) => {
|
|
ContactFormSettingsForm.reloadValidation();
|
|
}); |