pg_rails 7.0.8.pre.alpha.37 → 7.0.8.pre.alpha.38

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fc5297175e67ac85e03b8fbf4781139dc77a9d491c5c5ab15b0cf6d3d2c6dd48
4
- data.tar.gz: fa9e5a41db685275a80b90b737a9ff9772798d8c96c7cc4ab3c9b9d16a550716
3
+ metadata.gz: 683d6ba7d56764dfcf541c11cc57cd17a4e7a07db3cc5381d0b265151370e151
4
+ data.tar.gz: 6cab86107a332dcf819966a6458b18028dbb2b5e13fc875117f9685217c77c27
5
5
  SHA512:
6
- metadata.gz: ed39f31e8b7cebaf0d0c3055db4df0f044867d3df6d749720fe4093c400fbab88bbbdf3ef8869d43198f78345cf07b6854ef14339b1c579e3d1602f0526b7794
7
- data.tar.gz: 8752b125d74aa41ee9b9db26cca6a4fa94e17c58337c5eb95751d451ddbbaa175d9bf9f31d2cd0b33f4dcb0987c3837f38978efed0057895c8121285d65703ca
6
+ metadata.gz: d29164b89d0b98c7e884b32be394f8a13244e5c6f4429fa4c0432ca86f548213a267393c8b1ffae197947130cc668ade1cd2e4b2848e9d09b4842f5422c8684c
7
+ data.tar.gz: 01a039fa9de8f00165a9f6a883c08383cffcb4b478598a38da0661944e2eadce7a342724c9a40e4e1c7c60d5bc7e8258c5ab01c9788b97a6fef61fd61567a94e
@@ -3,6 +3,7 @@
3
3
  module PgEngine
4
4
  module FormHelper
5
5
  def pg_form_for(object, *args, &)
6
+ resource = object
6
7
  if object.is_a? PgEngine::BaseDecorator
7
8
  object = object.target_object
8
9
  elsif object.is_a?(PgEngine::BaseRecord) &&
@@ -21,6 +22,11 @@ module PgEngine
21
22
  'pg-form'
22
23
  end
23
24
 
25
+ if resource.errors.any?
26
+ options[:html][:data] ||= {}
27
+ options[:html][:data][:errors] = resource.errors.details.to_json
28
+ end
29
+
24
30
  simple_form_for(object, *(args << options), &)
25
31
  end
26
32
 
@@ -32,23 +32,7 @@ class PgFormBuilder < SimpleForm::FormBuilder
32
32
  base_message = (base_errors.map(&:to_s).join('<br>') if base_errors.present?)
33
33
  base_tag = error_notification(message: base_message, class: 'alert alert-danger') if base_message
34
34
 
35
- all_errors_tag = build_all_errors_tag unless base_tag
36
-
37
- "#{title}#{base_tag}#{all_errors_tag}".html_safe # rubocop:disable Rails/OutputSafety
38
- end
39
-
40
- def build_all_errors_tag
41
- details = object.errors.details.dup
42
- details.delete(:base)
43
- not_base_errors = details.any?
44
-
45
- return unless not_base_errors
46
-
47
- # TODO!: poder pasar un block para que no se ejecute si no se va a loguear por el log level
48
- # TODO: quizá esta warning loguearla pero no mandarla a rollbar por si son demasiadas
49
- pg_warn "Not base errors en pg_form: #{object.errors.details}. Record: #{object.inspect}", :warn
50
-
51
- "<span class='not_base_errors' data-errors='#{object.errors.details.to_json}'></span>"
35
+ "#{title}#{base_tag}".html_safe # rubocop:disable Rails/OutputSafety
52
36
  end
53
37
 
54
38
  def mensaje
@@ -15,9 +15,6 @@ describe PgFormBuilder do
15
15
  describe '#mensajes_de_error' do
16
16
  subject { instancia.mensajes_de_error }
17
17
 
18
- # expect(subject)
19
- # it { expect(subject).to eq 'Por favor, revisá los campos obligatorios:' }
20
-
21
18
  context 'cuando solo tiene errores de presencia' do
22
19
  before do
23
20
  categoria.nombre = nil
@@ -25,7 +22,6 @@ describe PgFormBuilder do
25
22
  end
26
23
 
27
24
  it { expect(subject).to include 'Por favor, revisá los campos obligatorios:' }
28
- it { expect(subject).to include 'not_base_errors' }
29
25
  end
30
26
 
31
27
  context 'cuando solo tiene errores de :base' do
@@ -35,7 +31,6 @@ describe PgFormBuilder do
35
31
  end
36
32
 
37
33
  it { expect(subject).to include 'Por favor, revisá los siguientes errores' }
38
- it { expect(subject).not_to include 'not_base_errors' }
39
34
  end
40
35
  end
41
36
 
@@ -10,16 +10,19 @@ export default class extends Controller {
10
10
  }
11
11
  })
12
12
  })
13
- const notBaseErrors = this.element.querySelector('.not_base_errors')
14
-
15
- if (notBaseErrors) {
16
- const invalidFeedback = document.querySelector('.invalid-feedback')
17
- if (!invalidFeedback) {
18
- console.error(notBaseErrors.dataset.errors)
19
- Rollbar.error(notBaseErrors.dataset.errors)
13
+ const errorTitle = this.element.querySelector('.error-title')
14
+ if (errorTitle) {
15
+ const invalidField = document.querySelector('.is-invalid')
16
+ const baseAlert = document.querySelector('.alert-danger')
17
+ if (!invalidField && !baseAlert) {
20
18
  const errorTitle = this.element.querySelector('.error-title')
19
+ // FIXME: testear con capybara
21
20
  errorTitle.innerText = 'Lo lamentamos mucho pero ocurrió algo inesperado. Por favor, intentá nuevamente o ponete en contacto con nosotros.'
22
21
  // FIXME: link a contacto
22
+ const form = this.element.querySelector('form')
23
+ const errorMsg = `${form.id} - ${form.action} - ${form.dataset.errors}`
24
+ console.error(errorMsg)
25
+ Rollbar.error(errorMsg)
23
26
  }
24
27
  }
25
28
  }
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PgRails
4
- VERSION = '7.0.8-alpha.37'
4
+ VERSION = '7.0.8-alpha.38'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pg_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.0.8.pre.alpha.37
4
+ version: 7.0.8.pre.alpha.38
5
5
  platform: ruby
6
6
  authors:
7
7
  - Martín Rosso
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-04-18 00:00:00.000000000 Z
11
+ date: 2024-04-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails