Sha256: 3ab6bcc8fe15c35e836f9b192971b412cc8ac3ed510077beda452def7fde2f9d
Contents?: true
Size: 1.66 KB
Versions: 39
Compression:
Stored size: 1.66 KB
Contents
import { Controller } from '@hotwired/stimulus' import Rollbar from 'rollbar' export default class extends Controller { connect () { this.element.querySelectorAll('.form-select, .form-control').forEach((slct) => { slct.addEventListener('change', (e) => { if (e.target.value) { slct.classList.remove('is-invalid') } }) }) this.element.querySelectorAll('.btn-check').forEach((slct) => { slct.addEventListener('change', (e) => { const invalid = e.target.closest('.is-invalid') if (invalid) { invalid.classList.remove('is-invalid') } }) }) const errorTitle = this.element.querySelector('.error-title') if (errorTitle) { const invalidField = document.querySelector('.is-invalid') const baseAlert = document.querySelector('.alert-danger') if (!invalidField && !baseAlert) { const errorTitle = this.element.querySelector('.error-title') // TODO!: testear con capybara errorTitle.innerText = 'Ocurrió algo inesperado. Por favor, intentá nuevamente o ponete en contacto con nosotros.' // TODO!: link a contacto const form = this.element.querySelector('form') const errorMsg = `${form.id} - ${form.action} - ${form.dataset.errors}` console.error(errorMsg) Rollbar.error(errorMsg) } } } submit () { let form = null if (this.element instanceof HTMLFormElement) { form = this.element } else { form = this.element.querySelector('form') } if (form) { form.requestSubmit() } else { Rollbar.error('No form found') console.error('No form found') } } }
Version data entries
39 entries across 39 versions & 1 rubygems